fix: a gesture never waits behind a run's summary, and an open page reads on a beat - #1251
Closed
santoshkumarradha wants to merge 3 commits into
Closed
santoshkumarradha wants to merge 3 commits into
santoshkumarradha wants to merge 3 commits into
Conversation
The line exists so the engine sees a person's gestures in the order they were made. The run's summary, a sentence a model writes under a budget of ten seconds that nobody pressed for, was asked through it, and stood in front of whatever a person did next. Measured on a real screen: a press on a run's row waited 7.6 s for a read that took 2 ms, and a stop or a pause pressed in that window would have waited the same. The summary is now asked beside the line, its fold unchanged. A pause pressed while the summary is held on a channel is answered before it returns, gestures made meanwhile still reach the plan in the order they were made, and a structural law names with its reason every door that may be asked beside the line, so a gesture cannot be moved there. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The follow was offered its read on every tick of the paint clock and held back only while one was out, so a fast engine was asked again the moment it answered: 509 reads over the wire in ninety seconds on a real screen, about six a second, for one open page. It now reads once every three seconds, the rail's own beat, counted from the last time the page was read for any reason, and only while the task is queued or running. A page on a task that has ended is read once, to open it. Counted through the real server and client: twenty ticks a beat over five beats cost 120 reads before and cost five now; twenty beats on an ended task cost none. The follow stays in the ordered line because its fold replaces the page and a note re-reads it too. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
santoshkumarradha
marked this pull request as ready for review
September 19, 2026 05:24
Member
Author
|
Landed on |
This was referenced Sep 19, 2026
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 was wrong
Every ask the surface makes of its engine stood in one ordered line, so the engine sees a person's gestures in the order they were made. The run's summary stood in that line too, and the summary asks a model with a ten second budget. A press made while a summary was out waited behind it.
Separately, an open task page asked for its page again from the paint clock: about six reads a second over the wire for as long as the page was open, ended tasks included.
What changed
Two commits, each with a failing test first.
besideLine, asks on its own goroutine and folds the same way. Its property: a read nobody pressed for, where nothing a person does next depends on the engine having seen it first. The run's summary is its one caller. A ledger law (doorsBesideTheLine,TestOnlyReadsNobodyPressedForAreAskedBesideTheLine) lists every caller, and the structural law that keeps engine doors off the loop accepts both roads.Who stands in the ordered line
Autonomy reads and writes, the replay on attach, the gestures that resolve a question, the plan's spend, the plan verbs, a note, and page reads. Of all of them only the run's summary was a model call or had a budget in seconds. One more finding is not in this PR: the tasks place reads the plan synchronously on the frame. That read is on the loop ledger and has its own cell.
Measured, real binary, hosted, 2026-09-19
Press on a run's row to its page being drawn. The press is made the moment the row appears, which is when a summary has just been asked, so this is a gesture made during a summary.
Page reads over twenty seconds of an open page on a running task, in the hosted test: 120 before, 5 after. On an ended task: none after the opening read.
I did not time a note separately. A note takes the same ordered line as the press, so the press is its measure.
Proof
internal/tui3exit 0, wholeinternal/sessionexit 0. The head pushed here adds the change entry only.internal/guard,internal/namelaw,internal/manualok;make test-lawsexit 0;gofmt -l ./cmd ./internalempty.worker-harness.mdnow says what the page does.🤖 Generated with Claude Code