fix(desktop): signal liveness in the Agent Graph panel - #3931
Conversation
A homogeneous fan-out moves nothing on screen until the whole batch settles: `settled/total` holds at `0/7`, every operator row keeps a static dot, and the panel's only Spinner is gone the moment a snapshot arrives. Users read that as a stalled graph and reach for Stop graph. Carry three signals that keep moving while the graph is unsettled. The running and runnable dots pulse, so a row says "working" by motion and not only by hue. The header keeps a heartbeat ring beside the status text for as long as the status is active, waiting, or closing. The counter gains a clock, which counts the panel's own observation of the run rather than the epoch binding's `createdAt` — that field is 0 for sessions no epoch store backs, and an elapsed derived from it would read as decades.
|
I reviewed this PR at exact head Spec: PASS — no P0–P3 findings
Small testing gaps remain (no fake-timer tick/cleanup, active→waiting→closing transition, refresh-failure/stale-active, multi-panel isolation, or reduced-motion/ARIA direct assertions), but they are below P3 and do not affect correctness. Standards: 6 hard P3s — needs fixes before merge
Other checks: What I did not check: hosted CI for this exact head — run Gate: exact head has no P0–P2, but the six P3 standards findings and the missing required
|
Fixes #3878.
When an Agent Graph fans out, the desktop panel looks frozen: settled/total stays at 0/7, operator dots only change color, and the Spinner disappears once a snapshot exists. Users think Maka is idle and hit Stop graph.
This adds three liveness signals while the graph is unsettled:
Per-operator live preview and header progress bar are out of scope.
AI use: generative tooling made a substantive contribution.