Phase 3: VISUAL feed and M-Files drawings in the worker
Migration 0004 (VISUAL and drawing caches, go-live ignored list, resource map, job tables, order-derived columns with provenance; work order key includes the operation sequence). The real worker on APScheduler with settings re-read each fire, pause, run now, advisory locks, job_runs and a heartbeat. The visual-feed job (five VisualKit reads, COPY and MERGE cache, suspect-batch guard, the apply in one transaction: drafts, change orders, retire-moved, work order gone, closed and cancelled observed, projects and units from order links, auto-release) and the fingerprint. The drawing-lookup job (queue, budget, download on version change, sha256 into assets, decision table, staging for rev approval, drawing-origin change orders). Clerical From VISUAL panel, flags, rev approval, hand uploads, change-order review; Admin Feed settings and resource map. Synthetic fixture generator and a fixture-driven worker in CI with a Playwright scenario. Docs updated. Verified: 3249 server tests and 13 Playwright scenarios on the docker-1 CI stack, 76 frontend tests, doctor at 0004; one feed and one drawing run against VISUAL DEV and the vault from the developer machine (counts in the changelog). Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
@@ -49,6 +49,11 @@ export function useEvents(sessionId: string | null, handlers: EventHandlers): Pr
|
||||
es.addEventListener("changed", (ev) => {
|
||||
ref.current.onChanged?.(parse((ev as MessageEvent).data));
|
||||
});
|
||||
// Phase 3: the worker finished a feed run. Fanned out with the changed events, marked event "feed".
|
||||
es.addEventListener("feed", (ev) => {
|
||||
const p = parse((ev as MessageEvent).data);
|
||||
ref.current.onChanged?.({ ...(p && typeof p === "object" ? p : {}), event: "feed" });
|
||||
});
|
||||
|
||||
return () => {
|
||||
es.close();
|
||||
|
||||
Reference in New Issue
Block a user