Skip to content

Restore double-space Home navigation and ask-here choices - #1388

Merged
AbirAbbas merged 13 commits into
devfrom
codex/restore-home-shortcuts
Sep 24, 2026
Merged

AbirAbbas merged 13 commits into
devfrom
codex/restore-home-shortcuts

Conversation

@ZeroPoint95

@ZeroPoint95 ZeroPoint95 commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

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 /ask from 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 scheduled heading back to standing to match the tab name.

Validation:

  • make build and focused Home/navigation/rewind regressions.
  • make pr-ready, plus make pr-ready BASE=2407055a2 for the later terminal-test additions: build, vet, packed manual, retrieval and tool/command gates, structural laws, and fresh touched-package tests.
  • Real tmux navigation at 180, 120, and 44 columns (TestHomeRestoredNavigationNoModel).
  • Real binary and local endpoint: both restored submission routes receive answers (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=556196048 passes 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 dev at 5ba989468 reproduces 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 clean dev (5ba989468) after make build, using a configured provider key. The seven remaining failing scenarios are:

  • answer_from_home_across_two_windows
  • hover_previews_the_match_under_the_pointer
  • the_projects_panel_is_the_view_by_project
  • one_figure_on_every_spend_surface
  • a_refused_task_proposal_draws_no_schema_sentence
  • space_in_the_task_room_pages_the_card
  • TaskOnTheRunEngine

Heading-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-ready rerun fails only on an unrelated provider allocation failure (11 allocations versus 8), reproduced on the pre-rename commit b41b8c6c2.

@ZeroPoint95
ZeroPoint95 marked this pull request as ready for review September 23, 2026 00:40
ZeroPoint95 added a commit that referenced this pull request Sep 23, 2026
…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]>
ZeroPoint95 added a commit that referenced this pull request Sep 23, 2026
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]>
ZeroPoint95 added a commit that referenced this pull request Sep 23, 2026
#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]>
AbirAbbas and others added 4 commits September 24, 2026 16:35
…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]>
AbirAbbas added a commit that referenced this pull request Sep 24, 2026
…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]>
AbirAbbas added a commit that referenced this pull request Sep 24, 2026
#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]>
AbirAbbas added a commit that referenced this pull request Sep 24, 2026
#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]>
@AbirAbbas

Copy link
Copy Markdown
Collaborator

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 (stopped by you at 8.8s), and esc esc opens inline rewind; typing on Home draws ? ask here: "…" directly above + start a new conversation: "…", Enter starts a conversation and Up+Enter asks here (TestHomeRestoredSubmissionDoorsWithStub passes); /ask foo answers there is no command called /ask · / lists them; the panel heading reads standing. Integration: make pr-ready BASE=origin/dev green on this head, which already contains dev at 7b50751.

Commits added:

@AbirAbbas AbirAbbas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified on top of dev; merging.

@AbirAbbas
AbirAbbas merged commit 9ad949a into dev Sep 24, 2026
4 checks passed
@AbirAbbas
AbirAbbas deleted the codex/restore-home-shortcuts branch September 24, 2026 20:59
AbirAbbas added a commit that referenced this pull request Sep 24, 2026
…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]>
AbirAbbas added a commit that referenced this pull request Sep 24, 2026
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]>
santoshkumarradha pushed a commit that referenced this pull request Sep 25, 2026
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.
santoshkumarradha added a commit that referenced this pull request Sep 25, 2026
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]>
santoshkumarradha pushed a commit that referenced this pull request Oct 24, 2026
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants