feat(desktop): keep Current Plan visible after turns - #75665
Conversation
Preserve the reviewed Current Plan surface while integrating current upstream Desktop changes. Harden route identity and persisted todo hydration for malformed snapshots, cancellation, explicit clears, terminal-error completion, and visible keyboard focus.
|
Thanks for the focused Desktop contribution. The premise is confirmed on current main: The reviewed diff keeps the new surface renderer-local, derives it from hydrated transcript history, attaches persisted Automated hermes-sweeper review. |
Problem
Hermes Desktop's live todo checklist disappears after a turn settles. The transcript still contains the todo tool result, but the Desktop does not project that durable history back into the chat. Users can therefore lose the reviewed plan, confuse a stale
in_progressitem with live execution, or miss that a newer turn superseded the last plan.Architecture
CurrentPlanSurfaceabove the settled transcript.mainwith a signed merge commit.Persistence and lifecycle behavior
toolCallId; compacted, interrupted, and terminal-error turns refresh persisted todo provenance while preserving local scrollback.active,paused,completed,superseded, orhistoricalfrom explicit runtime and transcript state. A stalein_progressitem never implies liveness by itself.Accessibility and localization
aria-expandedandaria-controlsfor disclosure.Tests
Validated on Node v22.23.2 after integrating current upstream
main:Upstream and concurrent-work assessment
todos.tsandtodos.test.ts; none of its unreviewed changes are imported, so maintainer conflict resolution may be required if it merges first.Rollback and scope boundaries
Rollback is a normal revert of the integration commit and feature commit. The change is renderer/history projection and hydration metadata only. It does not install or deploy Desktop, restart Hermes services, modify a live Kanban/SalesOS board, change production configuration, write to Salesforce, or add external delivery behavior. This PR must not be merged as part of this handoff.