fix: consolidate DagTask types, fix REST fallback shape, fix lint noqa

- Extract shared DagTask/DagTaskStatus types into www/app/lib/dagTypes.ts
- Re-export from useWebSockets.ts and UserEventsProvider.tsx
- Fix browse page REST fallback: dag_status is list[dict] directly, not {tasks: [...]}
- Add missing # noqa: PLC0415 for fork-safe deferred imports
This commit is contained in:
Igor Loskutov
2026-02-09 13:25:40 -05:00
parent ebae9124b6
commit 0c06cdd117
5 changed files with 29 additions and 46 deletions

View File

@@ -125,7 +125,7 @@ def extract_dag_tasks(details: V1WorkflowRunDetails) -> list[DagTask]:
parents_by_step[child_id].append(step_to_name[s.step_id]) parents_by_step[child_id].append(step_to_name[s.step_id])
# Join tasks by step_id # Join tasks by step_id
from hatchet_sdk.clients.rest.models import V1TaskSummary from hatchet_sdk.clients.rest.models import V1TaskSummary # noqa: PLC0415
task_by_step: dict[str, V1TaskSummary] = {} task_by_step: dict[str, V1TaskSummary] = {}
for t in tasks: for t in tasks:
@@ -199,9 +199,9 @@ async def broadcast_dag_status(transcript_id: str, workflow_run_id: str) -> None
from reflector.db.transcripts import transcripts_controller # noqa: I001, PLC0415 from reflector.db.transcripts import transcripts_controller # noqa: I001, PLC0415
from reflector.hatchet.broadcast import append_event_and_broadcast # noqa: PLC0415 from reflector.hatchet.broadcast import append_event_and_broadcast # noqa: PLC0415
from reflector.hatchet.client import HatchetClientManager # noqa: PLC0415 from reflector.hatchet.client import HatchetClientManager # noqa: PLC0415
from reflector.hatchet.workflows.daily_multitrack_pipeline import ( from reflector.hatchet.workflows.daily_multitrack_pipeline import ( # noqa: PLC0415
fresh_db_connection, fresh_db_connection,
) # noqa: PLC0415 )
from reflector.logger import logger # noqa: PLC0415 from reflector.logger import logger # noqa: PLC0415
async with fresh_db_connection(): async with fresh_db_connection():

View File

@@ -145,11 +145,9 @@ function TranscriptCard({
status={result.status} status={result.status}
dagStatus={ dagStatus={
dagStatusMap?.get(result.id) ?? dagStatusMap?.get(result.id) ??
( ((result as Record<string, unknown>).dag_status as
(result as Record<string, unknown>).dag_status as | DagTask[]
| { tasks?: DagTask[] } | null) ??
| undefined
)?.tasks ??
null null
} }
/> />

View File

@@ -14,25 +14,8 @@ import {
} from "../../lib/apiHooks"; } from "../../lib/apiHooks";
import { NonEmptyString } from "../../lib/utils"; import { NonEmptyString } from "../../lib/utils";
export type DagTaskStatus = import type { DagTask } from "../../lib/dagTypes";
| "queued" export type { DagTask, DagTaskStatus } from "../../lib/dagTypes";
| "running"
| "completed"
| "failed"
| "cancelled";
export type DagTask = {
name: string;
status: DagTaskStatus;
started_at: string | null;
finished_at: string | null;
duration_seconds: number | null;
parents: string[];
error: string | null;
children_total: number | null;
children_completed: number | null;
progress_pct: number | null;
};
export type UseWebSockets = { export type UseWebSockets = {
transcriptTextLive: string; transcriptTextLive: string;

View File

@@ -7,25 +7,8 @@ import { useAuth } from "./AuthProvider";
import { z } from "zod"; import { z } from "zod";
import { invalidateTranscriptLists, TRANSCRIPT_SEARCH_URL } from "./apiHooks"; import { invalidateTranscriptLists, TRANSCRIPT_SEARCH_URL } from "./apiHooks";
export type DagTaskStatus = import type { DagTask } from "./dagTypes";
| "queued" export type { DagTask, DagTaskStatus } from "./dagTypes";
| "running"
| "completed"
| "failed"
| "cancelled";
export type DagTask = {
name: string;
status: DagTaskStatus;
started_at: string | null;
finished_at: string | null;
duration_seconds: number | null;
parents: string[];
error: string | null;
children_total: number | null;
children_completed: number | null;
progress_pct: number | null;
};
const DagStatusContext = React.createContext<Map<string, DagTask[]>>(new Map()); const DagStatusContext = React.createContext<Map<string, DagTask[]>>(new Map());

19
www/app/lib/dagTypes.ts Normal file
View File

@@ -0,0 +1,19 @@
export type DagTaskStatus =
| "queued"
| "running"
| "completed"
| "failed"
| "cancelled";
export type DagTask = {
name: string;
status: DagTaskStatus;
started_at: string | null;
finished_at: string | null;
duration_seconds: number | null;
parents: string[];
error: string | null;
children_total: number | null;
children_completed: number | null;
progress_pct: number | null;
};