Repository navigation
Restore double-space Home navigation and ask-here choices - #1388
Conversation
…jobs codex/restore-home-shortcuts gives back the two Home gestures #1071 took: two spaces in an empty box open home, and esc returns to being the interrupt, the layer peel and the arming half of rewind. It also removes /ask, whose tip this branch had already taken off the table, and puts `ask here` back over home's box. THE TIPS. One row changes its words: `/rewind takes back an earlier message` becomes `esc esc takes back the last message`, which is #1388's own edit and the right one — the chord is the half a person cannot discover, and either door still retires the row. No row is added for two spaces: the foot advertises `space space home` outright, and a tip for something the keys row already names is the one rule this table has always kept. Twenty-two rows, unchanged in number. ESC ON HOME NOW PEELS THREE LAYERS, and the @ list this branch added is the innermost: the list, then the box, then the screen. It has to be that order — clearing the box first would take the half-typed token the list was opened for along with it. #1388's own esc test typed `@x`, which opens that list, so it walks all three layers now and says so in its name. Three tests here opened home by pressing esc. They go through the door a person uses, `goHome`, which presses space twice. Copy mode meets this merge twice more: esc arming rewind no longer asks whether a frozen page is up (rewind.go), and background.go's note about the keys that are not for sale named ctrl+b beside it. The manual: the hints page's opening now shows the keys row's live states with `esc interrupt` in them, the roads home are two spaces rather than esc, the rewind row is respelled, the `/ask` note says the door followed its tip out, home.md keeps #1388's restored ask-here frame with this branch's project on the keys row, and the rewind page's list of states that refuse to arm drops copy mode. Co-Authored-By: Claude Opus 5 <[email protected]>
The owner's word, 2026-09-23: "we don't need a hint, but don't remove the feature." So b91a391 is reverted whole. ctrl+b freezes the viewport again, v/a/y and y-on-a-mark work in it, /copy opens it, the status word and the mode's own keys row are back, and copymode.go has its name back. THE TIP DOES NOT COME BACK. `ctrl+b freezes the screen so you can read and copy from it` stays off the table, /autonomy keeps the seat it took, and the table stays at twenty-two rows. The row in notice.go that explains that seat now says so outright, because it was the one place a reader could conclude the feature had gone with its tip. Three things the revert could not know about, because they landed after it on this branch: - #1384's working logo. It taught both freeze doors to lay the page out after copy mode owns it, so the animated row and its private blank never become frozen transcript. That edit went into copymode.go and room.go, both of which the removal had deleted, so it is applied by hand here — along with its two tests and the room freeze's transient-row arithmetic. - The guards. worklogo.go asks `!a.copy.on` on both visibility rules again, and rewindReady counts a frozen page among the states that refuse to arm. - #1388's esc. The revert wanted background.go and keys.md to say `ctrl+c` interrupts; esc does. Both say `ctrl+b is copy mode and esc interrupts`, which is what #1388 itself wrote. The manual: the pages the removal edited are reverted with it, the working-indicator page says the logo steps aside in copy mode again, the rewind page counts copy mode among the states that refuse to arm, and the hints page notes that the feature works while its tip does not exist. The three probes about copy mode now ask about it working rather than about it being gone. Co-Authored-By: Claude Opus 5 <[email protected]>
#1388 respelled this row from `/rewind takes back an earlier message` to `esc esc takes back the last message`, and it arrived here in that merge rather than by anybody's choice on this branch. The owner read it back and did not recognise it. Either spelling teaches half of it. `esc esc` is the half nobody discovers. `/rewind` is the half that survives: a person who read only the chord has no word to type into `/`, no word to ask the manual, and nothing to search for a week later. So the row names both: esc esc or /rewind takes back an earlier message `an earlier message` rather than `the last` because both doors walk back further than one turn — the chord through the drawn blocks, the command through the whole conversation. Same id, same gesture; eventRewound already fires from both doors. Co-Authored-By: Claude Opus 5 <[email protected]>
…he restored Home Two conflicts, both from dev landing its own copies of this branch's work. #1415 renamed the Home heading to `standing` by reading the standing place's own word, so this branch's `homeScheduledWord` constant goes and dev's wiring stays. #1424 rewrote screen.md's `home` paragraph; its column and hover sentence is kept, and its "Escape backs out to Home" gives way to this branch's restored door, "Space twice on an empty composer still opens Home". Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
#1415 landed the same `scheduled` → `standing` rename with its own change entry, so this entry stops saying it a second time and the release notes name it once. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Below sixty columns the first-run form draws no `setting up` title and its legend stops at `enter goes on · tab moves`, so the rig's launch wait never saw an interactive surface and TestHomeRestoredNavigationNoModel/44 failed after forty-five seconds on the setup screen. Both the launch wait and skipSetup now also read the legend's `tab moves`, which only the setup form draws. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…sk-here One conflict, in homeLine.stop: #1422 rewrote the comment over the list of rows a cursor may rest on (project rows are chosen by pointer, alt+p by key), and this branch added the restored `homeAction` and `homeAskHere` rows to it. Both are kept: #1422's comment over this branch's list. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…keys row 2e2b5ed taught esc as the door home in five passages, one day before #1388 gave two spaces back; the merge kept those passages, so keys, home, places and running-on-another-machine told a person the opposite of what the binary does. They say `space` `space` again. Also: a /project or /attach pin on home says nothing and shows at the right of the keys row (not `next conversation opens in`, not on the rule), a task page's question is reached through home with two spaces, and only home's tip row takes turns — a conversation's ranks. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
#1388 took dev (#1402, #1419, #1415, #1424, #1425) and resolved it there, so this merge brings no conflict of its own: the `standing` heading reads the standing place's word, screen.md keeps #1424's column sentence with two spaces as the door home, and the tmux rig sees the setup form at forty-four columns. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
#1388 took #1422 (a project name on home's panel selects the next conversation's folder). One conflict here, in home.md's alt+p paragraph: #1422's click sentence and "all three controls" are kept, with this branch's `/project` and the project's place at the right of the keys row. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
|
Checked on the real binary (tmux, throwaway home) together with #1389, which stacks on this: two spaces from an empty box open Home (also from sessions/spend; on Home they type), Escape closes a place back to the conversation, stops a live answer ( Commits added:
|
AbirAbbas
left a comment
There was a problem hiding this comment.
Verified on top of dev; merging.
…eady merged here The squash carries exactly the tree of ffa9471, which this branch merged in e9b1903, so the merge records it and changes no file. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Brings #1415, #1424, #1425, #1334, #1422, #1388, #1389 and #1426 onto the integration branch (dev at debffab). Conflicted files and how each was settled: - internal/tui3/homeslash.go: the opens-a-conversation fate keeps dev2's /skill and dev's /manual and /folder (the union). dev's /project pin and the removal of /image and /ask stand. The fate-table and homeTrayCommand comments no longer name /image or the old /folder pin. - internal/manual/chat/home.md: dev's three rows for /attach, the commands that open a conversation and the ones that answer on Home, with dev2's /skill /skills added to the opens-a-conversation row so the table matches homeFate. - internal/tui3/notice_test.go: both sides appended tests; all are kept (dev2's unread and retired profile-key tests, dev's ranking and rotation tests). newNoticeBoard's third argument is "hints enabled", so the hints-off test still passes false. Not a textual conflict, but broken by the merge: - internal/manual/chat/compacting-over-and-over.md: the probe "what happened to the earlier messages" reached another page once dev2's pages and dev's respelled heading met. The heading carries the phrase again. Semantic collisions checked with no change needed: Escape and double-space against dev2's task page, rail, pickers and skill chips; one /skill row and alias; the tip table (22 rows, no priority column, the unread-keys line is not a tip and shows with hints disabled); ui.hints stays a read key beside dev2's task.parallel and retired-key rows; Home's working mark and the filtered Sessions list against dev2's stopped and interrupted runs; the attach tray carries files and skill chips side by side; the e2e word table; system.md; icons and banned words; change entries. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Brings in #1410, #1440, #1426, #1389, #1388, #1422, #1334, #1424, #1425 and #1415. Conflicts resolved keeping both sides: the keys row carries dev's project and low-credit line at its right end and the dock in what they leave; the strip's home chip takes dev's word on the one top bar's lead; the chats place joins dev's restored esc and double-space manual.
dev now carries santos/dev2 (#1410) and #1388, #1426, #1440 and others. The PR's net change is taken from its fork point bdb08cf; the earlier dev2 merge and its revert are left out, so dev's skills (#1396) and worker step-boundary work stay as dev has them. Conflicts: config/crew.go, config/seats.go and tui3/crew.go take the routed-crew versions; /crew keeps dev's notice event. do.go keeps both the kept-record line and the crew outcome log. task_run_belt.go keeps both the machine-hold rail and the crew completer. home.md keeps dev's rows without the preset forms and adds the crew-panel row. truth_test.go keeps dev's new facts and counts the crew as three seats. back_test.go stays deleted as on dev. CHANGELOG.md keeps dev's released history. #1440 on the routed crew: reflex and small work keep their free defaults on a balance read as low; the three crew seats see the OpenRouter account as out of credit before any call (not re-probed per task) and route to free pools with the free-routes notice. Tests follow. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Brings #1415, #1424, #1425, #1334, #1422, #1388, #1389 and #1426 onto the integration branch (dev at 5289195). Conflicted files and how each was settled: - internal/tui3/homeslash.go: the opens-a-conversation fate keeps dev2's /skill and dev's /manual and /folder (the union). dev's /project pin and the removal of /image and /ask stand. The fate-table and homeTrayCommand comments no longer name /image or the old /folder pin. - internal/manual/chat/home.md: dev's three rows for /attach, the commands that open a conversation and the ones that answer on Home, with dev2's /skill /skills added to the opens-a-conversation row so the table matches homeFate. - internal/tui3/notice_test.go: both sides appended tests; all are kept (dev2's unread and retired profile-key tests, dev's ranking and rotation tests). newNoticeBoard's third argument is "hints enabled", so the hints-off test still passes false. Not a textual conflict, but broken by the merge: - internal/manual/chat/compacting-over-and-over.md: the probe "what happened to the earlier messages" reached another page once dev2's pages and dev's respelled heading met. The heading carries the phrase again. Semantic collisions checked with no change needed: Escape and double-space against dev2's task page, rail, pickers and skill chips; one /skill row and alias; the tip table (22 rows, no priority column, the unread-keys line is not a tip and shows with hints disabled); ui.hints stays a read key beside dev2's task.parallel and retired-key rows; Home's working mark and the filtered Sessions list against dev2's stopped and interrupted runs; the attach tray carries files and skill chips side by side; the e2e word table; system.md; icons and banned words; change entries. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Restore the two Home interactions replaced in #1071. Two spaces in an empty message box open Home again, including the existing filter and boxless-place routes. Escape resumes its previous context-specific behavior: it closes places back to the conversation, stops a running answer in the main conversation, and double-Escape opens inline rewind.
Typing on Home again shows “ask here” directly above “start a new conversation,” below the search results. Enter defaults to a new conversation; one Up followed by Enter asks in a Home pane. Remove
/askfrom dispatch, command completion, and inline send tags: it was introduced by the commit that removed these choices.The restoration is based on the original navigation and submission commits, with current alphabetical command browsing, effort shortcuts, phone options, question rows, and waiting-message retention preserved. The manual, keyboard hints, focused regressions, and TUI e2e recipes describe the restored behavior.
Also rename Home’s
scheduledheading back tostandingto match the tab name.Validation:
make buildand focused Home/navigation/rewind regressions.make pr-ready, plusmake pr-ready BASE=2407055a2for the later terminal-test additions: build, vet, packed manual, retrieval and tool/command gates, structural laws, and fresh touched-package tests.TestHomeRestoredNavigationNoModel).TestHomeRestoredSubmissionDoorsWithStub), and Escape stops an endless stream and an uncancellable tool wait (TestBoundedStopE2E's scripted cases).The streaming fixture's wait previously failed on clean dev because the live summary omits its terminal period. Match the same visible words without requiring that punctuation; clean-dev reproduction confirmed the fixture issue predates this change.
Live-provider verification now uses an authorized Keychain credential passed only to test processes. Passing runs include Home navigation and recent sessions, a real conversation/search card, ask-here reminder creation and reopening, narrow ask-here, delivery while open and after reopening, and bounded cancellation of a real model blocked on a FIFO. The final binary also passes the deterministic terminal tests above.
make pr-ready BASE=556196048passes for the subsequent e2e harness changes.The initial broad live run exposed stale Home shape/selection assertions and a terminal-cleanup race. Update the relevant assertions and wait for the tmux pane process to exit before deleting its temporary profile; the affected Home and conversation scenarios pass on rerun. The live stop fixture now explicitly requests the intentional FIFO wait and observes the matching unfinished journal call instead of a transient footer label.
The full 18-scenario live suite completed in 18m07s and is not entirely green. Home shape, conversation, ask-here, and fresh-install setup pass with the corrected harness on rerun. Clean
devat5ba989468reproduces unrelated failures in cross-window answer-chip expectations, hover-preview expectations, project-column extraction, the clipped workspace name in the spend scenario, the task-refusal scenario's wait for a Home-exchange footer, the task-room fixture's conversation title/selection, and the task-engine fixture selecting a conversation/node row instead of the expected plan row. The spend totals themselves agree. These are recorded as existing limitations, not waived as passing tests.Baseline reproduction: run the same
TestTUIE2E/<scenario>subtests on cleandev(5ba989468) aftermake build, using a configured provider key. The seven remaining failing scenarios are:answer_from_home_across_two_windowshover_previews_the_match_under_the_pointerthe_projects_panel_is_the_view_by_projectone_figure_on_every_spend_surfacea_refused_task_proposal_draws_no_schema_sentencespace_in_the_task_room_pages_the_cardTaskOnTheRunEngineHeading-rename validation: focused heading-click tests and real tmux navigation at 180/120/44 columns pass. The full local TUI suite also passes. The local
make pr-readyrerun fails only on an unrelated provider allocation failure (11 allocations versus 8), reproduced on the pre-rename commitb41b8c6c2.