feat(tui): planning mode UI — drawer tab, live strip, semantic rows - #36
Merged
Conversation
Design contract for bodek's read-only surface onto odek's engine plan
state: WS-trigger/debounced-REST architecture, drawer tab, live strip,
transcript specialization, edge cases and test strategy. Verified against
odek serve's /api/sessions/{id}/plan endpoint and tool_call pairing.
Typed PlanSnapshot/PlanStep decoding for GET /api/sessions/{id}/plan
with the session-scoped token. Covers snapshot decode, found:false,
404 error mapping and malformed-body tolerance against httptest
fixtures.
Read-only planning surface fed by odek's plan endpoint. WS plan tool_call triggers a debounced structured fetch guarded by the store's monotonic version; session switches drain in-flight replies; old engines without the route degrade silently. Surfaces: drawer tab 4 with Telegram-parity rows and summary badge, detail submode per house grammar; live plan summary on the busy line only while a run is active and a non-collapsed plan exists; semantic one-liners replace JSON blobs for plan tool steps (ingestion order and stats untouched); /plan slash command. README synced.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Read-only UI surface for odek's engine plan system (docs/PLANNING.md in odek), implemented per
docs/PLANNING_MODE_UI.mdin this PR. No odek changes required — consumes existing protocol only.PlanSnapshot/PlanStepdecoding ofGET /api/sessions/{id}/plan(session-token auth, found:false/404/malformed handled).tool_call{name:plan}triggers a 250 ms debounced REST fetch; monotonic version guard rejects stale/out-of-order replies; session switches drain in-flight work; old engines without the route degrade silently (no retries on a dead route); 3 s poll only while the drawer tab is visible.v7 · 1/4 done · ⛔1badge), house detail grammar (⏎ expand / esc·q fold), collapsed-all-done vs no-plan vs unavailable states.▸ plan 1/4 · <active step> · ⛔1rides the busy line only while a run is active and a non-collapsed plan exists; zero pixels otherwise.🔄 plan p2 → in_progress) instead of JSON blobs; ingestion order and stats untouched; Ctrl+E still reveals raw args.Verification
make fmt,make vet,make lint0 issues,make testrace suite all packages ok.