council: T reads a turn for what the seats did, and says how far back it can - #297
Merged
Conversation
… it can The turn page answers what the seats SAID about turn 10. The other half of a turn is what they ran — the tool calls, the commands, the edits, the one that was refused at the gate — and the room has been parsing and keeping every one of those since §9.6a. What it draws them in is a 37-cell column, where the outcome is a single mark. So "did anything fail in turn 10, and where" cost a scroll per seat and four glyph shapes to read. T opens the same turn's acts at the full frame: one list, in seating order, with the outcome in WORDS beside each call — ok, failed with the vendor's own first line under it, outcome unknown, denied by you — and the mark it already had as the second signal, so --ascii and NO_COLOR lose nothing. An act with no reported outcome never reads as one that worked, which is what runner.ActStatus exists for; an unresolved call says "running" only while its seat is still waiting or streaming, and "no outcome reported" once that seat has landed. A seat that recorded nothing says so, rather than that it did nothing — a trace is a reading of what a vendor chose to report. The header states the retention window from maxHistory itself: the room keeps the last 50 turns per seat, so an unqualified "the acts" would be a record with a silent floor under it. y and Y take the ledger while it is open, through the same turnEntries call the screen renders from and the sanitize choke point every string on State already passed — one document, no second cleaning step. It is a second FACE of the projection §9.22 built rather than a third one: [ ] g G move the same coordinate, the scroll window and the overflow markers are the same code, and t still means the reading face from anywhere. The mode word says ACTS 10/11 against TURN 10/11. The help panel gained no row — T merged onto the one that already teaches f and t, which is how t itself landed there. Verified offline: go vet, the council suite, two new goldens and their --ascii twin assertions. No test here spawns a vendor, and nothing in it is a claim about vendor behaviour — the acts it draws are the ones §9.6a already measured. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
The turn page (§9.22) answers what the seats said about turn 10. The other half of a turn is what they ran, and the room has been parsing, redacting and keeping every tool call since §9.6a — it just draws them in a 37-cell column, where the outcome is one glyph. So "did anything fail in turn 10, and where" cost a scroll per seat.
Topens the same turn's acts at the full frame.What it is
TurnViewkeeps deciding which turn is on screen;TurnView.Ledgerdecides which of that turn's two records is drawn.[,],gandGmove the same coordinate, and the scroll window, the overflow markers and the clamp are the same code pointed at a different list.T. Shift on the key whose subject it shares —tgives one turn the whole room,Tgives that turn's acts the whole room. It flips rather than navigates (toggleArenaDiff's shape), so a reader on turn 7 stays on turn 7.tstill means the reading face from anywhere. In compose it is the letter T, onq/f/c/t's contract. That a shifted letter arrives as"T"and not"shift+t"was read off the pinned ultraviolet source, not assumed.f / t / Tmerged onto the row that already teaches both, which is howtitself landed there. The row sits at its 114-cell budget exactly.The honesty this surface could get wrong for free
? outcome unknownis its own word, because a vendor that says a step ENDED has not said it worked (antigravity'sDONE).turnEntry.Live— the newest turn stays the column's current one long after every seat lands, soLivealone would report a dead call asrunningfor the rest of the session.runningwhile waiting or streaming;no outcome reportedonce that seat has landed.(no acts recorded), never "did nothing." A trace is a reading of what a vendor chose to report.maxHistoryitself.the room keeps the last 50 turns per seat— an unqualified "the acts" would be a record with a silent floor under it. It is a line under the rule rather than meta on it, becauselabelRuleInsheds its meta whole at narrow widths and that sentence must not be the first thing to go.y/YBoth keys already take the page's own document;
YankPageis what keeps that true now there are two. The ledger document is built from the sameturnEntriescall the screen renders from, so there is no second sanitizer — every string already passed the one redact-and-sanitize choke point on the way ontoState. It carries the retention sentence too: in a file pasted into an issue a week later, that line is the only thing saying the record was ever bounded.Out of scope, deliberately
No per-seat focus on the page (§9.22's declined ruling stands), no change to what
turnEntriescollects, no note cards on the ledger (the seat's own rule already carries how its turn ended), noSTATE.md.Gates
go vet ./...,go test ./internal/council -timeout 20m, and the rest of the suite: green. Two new goldens (act-ledger,act-ledger-ascii);help.txtmoved by exactly one line, the taught key — read before accepting. No test spawns a vendor. Nothing here is a claim about vendor behaviour, so no live run is owed: the acts it draws are the ones §9.6a already measured, at a width that can afford to name them.🤖 Generated with Claude Code