You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make the ticker's closed set compiler-enforced and fix review findings
- AppShell.lockupPhase and LockupFrame.phase in shell.ts are now typed
ActivityState | null instead of string | null, so a raw tool identifier
reaching the ticker is a type error at the setLockupFrame boundary, not
only a test failure. lockup.ts's LockupInput.phase stays a generic string
deliberately — its own tests exercise arbitrary CJK/astral text to check
width math unrelated to the activity vocabulary, and the leak boundary is
already closed one layer up.
- isStalled on resolveTurnLabel is now required, matching resolveRampPhase;
a caller that forgets it is the exact bug this state exists to prevent.
- runtime-bridge.ts's second stall check site now calls isStalledForDisplay
instead of re-deriving 'not quiet' from stallLevel's result, so the two
call sites share one definition of stalled.
- Dropped unread TurnLabelInput.awaitingResponse.
- docs/TUI.md corrected: it described the phase slot as showing 'the running
tool's name', which this change makes false; it now points at
ACTIVITY_STATES as the source of truth.
- Added delete_file/advance_workflow/tool_search/search_agents to the
tool-to-state table.
- Test fallback case swapped from the fictional 'bash' tool to a real MCP
identifier, since 'bash' cannot occur at runtime.
0 commit comments