Skip to content

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

Open
ZeroPoint95 wants to merge 9 commits into
devfrom
codex/restore-home-shortcuts
Open

ZeroPoint95 wants to merge 9 commits into
devfrom
codex/restore-home-shortcuts

Conversation

@ZeroPoint95

@ZeroPoint95 ZeroPoint95 commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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.

1 participant