Repository navigation
Let commit destinations acquire and publish their saved viewport - #1299
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
trissim
force-pushed
the
fix/unfocused-history-return
branch
from
October 29, 2026 05:39
d93d35b to
5e58719
Compare
trissim
force-pushed
the
fix/unfocused-history-return
branch
from
October 29, 2026 06:01
5e58719 to
a657cf7
Compare
Author
|
Installed acceptance reviewed on Core782ed77a / Toad6d83f98a / Textual79a8a6d6. All three installed repair files match the reviewed source.
Source-cost repair is merged, installed and accepted. This does not establish the original intermittent burst's cause or16ms latency. No further provider/UI rerun is required for this checkpoint. |
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.
Source checkpoint: 2 commits, 3 files, +65/-82; saved-row preparation classes 4 → 2
Give the existing
CommitPlanfamily ownership of transcript acquisition and rendering. Following the tail acquires the latest saved destination directly; a deliberately older reader keeps its held viewport. This removes interval-sized forward acquisition from the tail path. It is not a demonstrated fix for the original long-unfocused delayed-burst report.1. Read destination belongs to the same plan as rendering
Before
CanonicalSourcePublication.read_past_historyalways suppliedafter=history.page_source.through, independently of viewport intent.FollowTailCommitdecide how to draw.page.has_newerrequested another commit, allowing a tail return to walk the accumulated interval.After
CanonicalSourcePublicationcaptures one existingCommitPlan;CommitPublicationinherits that capture.plan.read_snapshot.FollowTailCommit.read_snapshotsupplies noaftercursor: Core's existing newest-first traversal acquires its captured latest saved page/cut.RetainViewportCommit.read_snapshotowns forward acquisition for its existing saved source, including the existingTranscriptChangedfallback. Its metadata-only render action does not reposition the held reader.No guessed latest cursor, new cache, timer, queue, state or codec. Core still owns and returns the actual read identity/cut.
Formal ownership: IMPL-5; fact = source-read destination for captured viewport intent; at = old
transcript_publication.py:231versuscommitted_presentation.py:339; derive = base-method/subclass; by =CommitPlan.read_snapshot,FollowTailCommit,RetainViewportCommit. The shared unconditional forward decision is deleted, not moved to another coordinator.2. Publish the page already acquired; delete the second read path
Before:
After:
Delete
PreparedAdvanceCommit, its single-child abstract preparation layer, the forwardingpublishmethods, and the 20-lineCommittedHistory.advance_committedpath. The acquired prepared page now reaches the existing replacement-viewport owner; additional older-page reads remain governed by that owner's viewport/presentation budget, not the hidden interval.The same-history branch in
CommitPlan.preparederives exact required wire coverage once for both leaves, from page events, already-covered saved history and the returned cursor'scovers_incoming(sequence)proof. Native input IDs and outgoing message references are not inferred from a latest cursor: their existing exact evidence/claims remain intact. Remove the unused preparation callback and impossible nullable prepared-result branch.3. Preserve source, live-block and reader obligations
Unchanged owners/checks:
native_current,source_bound, current binding/generation and native pump join;NativeCommitEvidence, exact started-native-input/outgoing/wire claims and retirement recheck;CommitTranscriptlive-block handoff and publication-current callback;Rows are published through the existing
PreparedReplacementViewportRequest/LatestPositionowner. The retained-reader member continues usingretain_committed, without drawing or moving its page window.Source evidence and verification
SourceModule/ModuleSyntaxIndex/class projection: 1,169 Core/Toad/installed-Textual production modules, 8,278 original classes, 0 parse failures. Lexical declarations, bases, imports/writes/checks/call sites were retained; dynamic resolution is not proved. This was the pre-edit dependency snapshot. The updated installed-pair observations are recorded below, not inferred from this lexical map.PreparedSourceCommittoPreparedPageCommitwith identical source body.PreparedSourceCommit,PreparedAdvanceCommit,advance_committedorread_past_historyconsumers.transcript_publication,transcript_history,committed_presentation,toad.app. Both plan members are concrete; prepared-page dataclass fields remainhistory, sequences, page.git diff --checkpasses. No tests or local ratchets run.8e8c962e: pushed candidate5e587198868e9b38d80591b6eb6628f66129177f.git range-diffreports the original patch unchanged. Main's arrival-reveal behavior is retained. Updated installed-source census: 1,178 modules / 8,332 classes / 0 parse omissions.Type-contract correction after the accepted read-only run
Current pushed head a657cf7, rebased onto current main. Hosted debt job123284967781 exposed one introduced constructor error at old committed_presentation.py272:
capture(history: CommittedHistory)passed a possibly projected history intoPreparedPageCommit(history: TranscriptHistory).BoundView.historyalready supplies the mainTranscriptHistory;ConversationHistory.show_newestbelongs to that main-history capability, notProjectedTranscriptHistory. Narrow the complete preparation/capture chain:PreparedPageCommit.capture,CommitPlan.prepare, abstractCommitPlan.extend, and both leafextenddeclarations. Keep metadata-onlyPreparedCommit.history: CommittedHistorybroad. No cast, ignore, checker-budget edit, or movement of replacement behavior into projected histories. Capture returnsSelf.Retained NRA source map/reproof covers19classes/66methods in this family; all function bodies are identical before/after the annotation correction. Real app import and dataclass field inspection pass; diff check passes. No tests, local ratchets, provider or UI rerun for this type-only correction. Exact hosted type verdict remains with the normal PR checks. The unchanged baseline diagnostic at old line241 is not claimed repaired.
Actual large-source application qualification
The following actual runs used qualified source head 5e58719 (accepted by integration owner4673); the later annotation-only correction does not restamp these artifacts as a new run. Candidate source on installed Core
acdac6e6e881/ Textuale7a48c59, not an installed-candidate claim:ston an owned isolated display; all three private XDG directories; genuine 624,645,129-byte saved native source exposed throughoriginal.session_file.bound_to(copied.root)→BoundExternalSession. No journal/auth copy, provider input, or managed start.CoordinationTranscriptReader.read(request)instrumentation records original requests and returned page/identity cuts, without changing either. Tail reads request noafter; the actual latest snapshot contains 17 events,has_newer=false, native offset 624645129 / wire sequence 4645. Tail return again requests noafter.afterat the mounted source frontier. A real before-cursor older-page read returns 25 events; End restores 320 / 320, follows_tail=true. Screenshots inspected separately from IPC metadata./home/ts/.cache/agent-scratch/latency-history/unfocused-installed-result.json,unfocused-installed/{ipc.jsonl,actions.jsonl,*-state.json,*.png,exit.json}.core-acdac6e6e-lock-1161b67df97a8b4e. The earlier helper/root had already exited before the repeat install; no input was uncertain or replayed. Real read-only source starts at 624,674,079 bytes. Tail return requests noafter(actual IPC35/38ms); held return requests its actual mounted frontier and preserves 155 / 313, follows_tail=false (IPC45/44ms). Older paging and End work in inspected screenshots; End returns to 140 / 140, follows_tail=true in the bounded latest window. Ordinary quit exit0, CheckRoot retired, zero provider input. The original producer appended15,948bytes late after these return phases, so this still is not hidden-arrival/burst proof. Full original requests/results and actual paint live underunfocused-installed-current/; scope/result:unfocused-installed-current-result.json. No fixed-scenario frame/input latency or16ms claim.Earlier setup failures are retained: a foreign-runtime attachment refusal; a relative location serialized before destination binding (fixed by binding before serialization); its expired root refusing the late repair. No uncertain input was replayed. Earlier baseline
older006remains UNKNOWN with its missing private-store backup disclosed, never claimed preserved.Assumed / still owed
afterread remains newest-first with its returned identity/cut and output-page budgets; a page output budget is not a hard bound on filtered input scanning.