fix: set account_id on all Session constructors; fix 3 ESLint errors in CI
Backend: start_session, prepare_session, batch_launch_sessions all missing account_id=current_user.account_id — Phase 1 NOT NULL constraint made these 500 in test suite (test_ratings.py fixture couldn't create sessions). Frontend ESLint: - TaskLane.tsx: suppress react-refresh/only-export-components for clearTaskState - TeamSummary.tsx: init loading from isAccountOwner to avoid sync setState in effect - ScriptBodyEditor.tsx: move lastValueRef.current assignment into useEffect Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -196,6 +196,7 @@ async def start_session(
|
|||||||
new_session = Session(
|
new_session = Session(
|
||||||
tree_id=tree.id,
|
tree_id=tree.id,
|
||||||
user_id=current_user.id,
|
user_id=current_user.id,
|
||||||
|
account_id=current_user.account_id,
|
||||||
tree_snapshot=tree_snapshot,
|
tree_snapshot=tree_snapshot,
|
||||||
path_taken=[],
|
path_taken=[],
|
||||||
decisions=[],
|
decisions=[],
|
||||||
@@ -693,6 +694,7 @@ async def prepare_session(
|
|||||||
new_session = Session(
|
new_session = Session(
|
||||||
tree_id=tree.id,
|
tree_id=tree.id,
|
||||||
user_id=data.assigned_to_id or current_user.id,
|
user_id=data.assigned_to_id or current_user.id,
|
||||||
|
account_id=current_user.account_id,
|
||||||
tree_snapshot=tree_snapshot,
|
tree_snapshot=tree_snapshot,
|
||||||
path_taken=[],
|
path_taken=[],
|
||||||
decisions=[],
|
decisions=[],
|
||||||
@@ -770,6 +772,7 @@ async def batch_launch_sessions(
|
|||||||
session = Session(
|
session = Session(
|
||||||
tree_id=tree.id,
|
tree_id=tree.id,
|
||||||
user_id=current_user.id,
|
user_id=current_user.id,
|
||||||
|
account_id=current_user.account_id,
|
||||||
tree_snapshot=tree_snapshot,
|
tree_snapshot=tree_snapshot,
|
||||||
path_taken=[],
|
path_taken=[],
|
||||||
decisions=[],
|
decisions=[],
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ function loadTaskState(sessionId: string): TaskResponse[] | null {
|
|||||||
} catch { return null }
|
} catch { return null }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line react-refresh/only-export-components
|
||||||
export function clearTaskState(sessionId: string) {
|
export function clearTaskState(sessionId: string) {
|
||||||
try { sessionStorage.removeItem(`${TASK_LANE_STORAGE_KEY}:${sessionId}`) } catch { /* ignore */ }
|
try { sessionStorage.removeItem(`${TASK_LANE_STORAGE_KEY}:${sessionId}`) } catch { /* ignore */ }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ export function TeamSummary() {
|
|||||||
const { isAccountOwner } = usePermissions()
|
const { isAccountOwner } = usePermissions()
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
const [escalationCount, setEscalationCount] = useState(0)
|
const [escalationCount, setEscalationCount] = useState(0)
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(!!isAccountOwner)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isAccountOwner) { setLoading(false); return }
|
if (!isAccountOwner) return
|
||||||
aiSessionsApi.getEscalationQueue()
|
aiSessionsApi.getEscalationQueue()
|
||||||
.then((esc) => setEscalationCount(esc.length))
|
.then((esc) => setEscalationCount(esc.length))
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useCallback, useRef } from 'react'
|
import { useCallback, useEffect, useRef } from 'react'
|
||||||
import Editor, { type BeforeMount } from '@monaco-editor/react'
|
import Editor, { type BeforeMount } from '@monaco-editor/react'
|
||||||
import { resolutionFlowTheme, THEME_ID } from '@/components/tree-editor/code-mode/resolutionFlowTheme'
|
import { resolutionFlowTheme, THEME_ID } from '@/components/tree-editor/code-mode/resolutionFlowTheme'
|
||||||
import { Spinner } from '@/components/common/Spinner'
|
import { Spinner } from '@/components/common/Spinner'
|
||||||
@@ -11,7 +11,9 @@ interface Props {
|
|||||||
|
|
||||||
export function ScriptBodyEditor({ value, onChange, disabled }: Props) {
|
export function ScriptBodyEditor({ value, onChange, disabled }: Props) {
|
||||||
const lastValueRef = useRef(value)
|
const lastValueRef = useRef(value)
|
||||||
lastValueRef.current = value
|
useEffect(() => {
|
||||||
|
lastValueRef.current = value
|
||||||
|
}, [value])
|
||||||
|
|
||||||
const handleBeforeMount: BeforeMount = useCallback((monaco) => {
|
const handleBeforeMount: BeforeMount = useCallback((monaco) => {
|
||||||
// Register our dark theme if not already defined
|
// Register our dark theme if not already defined
|
||||||
|
|||||||
Reference in New Issue
Block a user