Repository navigation
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. Try requesting a review at a lower effort level.
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/followed-paint-only
branch
from
November 2, 2026 02:46
bf87092 to
6e5c16f
Compare
trissim
force-pushed
the
fix/followed-paint-only
branch
from
November 2, 2026 04:10
6e5c16f to
674b014
Compare
Author
|
Closed in Tristan's board clear (2026-11-02): superseded by #1393, which carries the retained followed paint. The branch is kept. Generated by Claude Code |
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.
Summary
3 commits, 5 files, +284/-36. Current head
6e5c16f720ecccc5e072ea7710648ba631a952c7, rebased onto main03f32f270ec4ba52dc9ba559b43c4246fd5f945a. Four production owners and presentation-fencing controls are separated from #1393 so the usage repair can ship without the physical-run harness. The first commit mechanically preserved the paint blobs; the second repairs the acquisition/publication lifetime; the third corrects test ingress and establishes actual saved paint before freezing its source. The two reported serial failures remain unverified at this new head. No harness/runtime-package change is included.What changes for the user
Following saved transcript output extends the already-painted prefix instead of replacing it. A known undrawn destination must actually publish before live output can retire. Failed append acquisition forces replacement publication, including when a rewritten file reuses its path and grows past the old byte offset. A held reader keeps its paint on a successful read. Saved-history height is not live/native prune pressure.
Owner and consumer change
Before:
After:
The source-cut/current/ready/lock/commit/retirement guards remain. The genuine Textual self-wait correction landed separately in #1394 and is not duplicated.
Review53818: complete acquisition and held readers
ClosedHistory genuinely reaches CommitPublication, including while the viewport is held. Complete acquisition is deliberate: coverage for a retained-only prefix cannot depend on an absent saved reader. A successful held-viewport commit still captures PreparedCommit and keeps its original pages, fragments and reader position; complete acquisition does not mean replacement paint. The existing closed-source case now covers both viewport intents.
ProjectedTranscriptSource is different: the only production constructor is LineHistory.projected_source (widgets/transcript_history.py:862), consumed by SeekingFilter.advance (transcript_filter.py:197) to mount ProjectedTranscriptHistory as the filter overlay. It is not the BoundView's ConversationHistory source selected by CommitPublication. This is the bounded named-consumer trace, not a claim that arbitrary dynamic callers were proved absent. The default complete-read method is not a new projected-overlay commit path.
CommitPlan's stale viewport-only acquisition docstring is corrected in the same commit.
Source evidence
Existing NRA SourceModule/ModuleSyntaxIndex/CompactClassFamilyIndex map: 35modules,354original classes,353canonical classes,1unprojected OPEN,0parse omissions before and after; syntax sites17107→17173. All354 declaration/lexical-owner/base/decorator rows remain equal in traversal order. No classes or inheritance edges added. Raw declarations/writes/decisions/imports/consumers are retained in
platform-source/paint-review-family-{before,after}.jsonin the owned Core checkout. Direct-name retrieval spans both repositories' src/tests/tools, with named Core/Textual dependencies. Aliases, dynamic binding, effects and arbitrary movement remain OPEN, not certified by this map.Two changed files compile; three actual Toad modules import from this source using installed0402 Core in the read-only0402/3475 dependency prefix. Actual MRO/import origins and the declaration comparison passed rc0 in
pi-ui-performance/paint-review-qualify-02.log. No local NRA gate, pytest or physical run is represented by this source check.Executed app proof and outstanding counterexamples
The original five affected app cases collected5/passed5,71.91s,rc0 at26a application/fixture + installedceeed Core/Textual. Artifacts:
/home/ts/.cache/agent-scratch/pi-ui-performance/dm-app-controls-03/{pytest.log,pytest.rc,origins.log}. They covered painted-page/fragment retention, the actually admitted known-gap destination, complete closed-source prefix and both live-pressure variants. Earlier setup5fail and4pass/1fail remain failed. No production method patch, guard weakening or restored Thread.project/Session details API.Review54167 executed bf87092 against current-main dependencies: Claude reports 12 passes, two stale TranscriptChanged imports, two real serial failures, and six contention-only failures that pass serially. The serial failures were the held closed-prefix marker disappearing and a followed commit returning with drawn_end_more still True.
Latest test-only correction:
No production guards or family declarations changed in this checkpoint. The file compiles; the latest setup correction is UNRUN and is not claimed to fix either serial failure. Commander owns the necessary combined selection, including the two original failures and both real rewrite/import cases. The original five passes are not current-head acceptance.
Headless app results do not prove configured-native read/edit arrivals, warm M-view paint/selection/draft/undo, hidden/reopen/tab-return, full physical performance, installation or original P867 coordinates. I retain implementation and verification ownership through the combined installation. Commander owns integration/install; auto-merge remains off pending exact-head review.
Separate work
#1393 retains the physical lifetime/observation overhaul and explicit module-entry fix; #3825 retains exact-input runtime/interpreter/archive evidence. The prepared0402/3475 prefix remains unchanged and borrowed read-only. Its preparation/readback and fresh stopped-history copy do not establish this revised paint head's live acceptance.
Assumed: the original five app results retain26a/ceeed scope; Review54167 retains its bf87092 dependency scope; the latest setup correction and two serial failures still need execution; the earlier NRA/import map is not proof of all current-base dynamics; current combined dependencies, installation and configured read/edit remain to be verified.