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 reached their quota limit.
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.
|
Closing under maintainer P402's explicit rule: the named PageUp binding-refresh storm no longer exists on current main. Quoted actual current-main evidence, Textual This is real Toad/Linux driver in plain st on isolated owned Xvfb, a private Core thread containing saved history, actual binding via CommsUpdated, and original methods observed rather than replaced. Current The binding call follows that return, so unchanged scroll offsets no longer emit bindings. A passing exit alone was not used as evidence: the original refresh calls were counted. The original PR is preserved, not rewritten: merged current fork main into Receipts: No tests added, local suite/ratchets run, provider input, installed package edits or Toad edits. The original native ownership refactor remains published on its branch; this closure does not claim all tail-follow architecture or scroll-performance targets are solved. Toad #64 stays open. AI-assisted qualification by fork-external. |
Repair at the owner — OpenHCSDev/toad#64 (kept open)
Actual PageUp trace:119 of120 binding notifications came from
HistoryWindow.watch_scroll_y → Window.tail_follow_changed → refresh_bindings, not focus changes. Stop the source emission; Footer projection/comparison/cache is untouched.Twelve Toad production lines deleted; no new class, store, cache, worker, timer or cap. All anchor writes and consumers enumerated before editing. Actual search
rg -n 'def follows_tail' src/toad ../textual-main/src/textualfinds exactly one declaration,textual/widget.py:692. Toad no longer writes either native anchor flag; native initialization and_set_anchor_stateown writes.Paired Textual#136
2fea115fc/ Toad#6850d91afbeb. Pin and lock use that dependency; current main integrated normally, retaining Core493878cde and unrelated Send/Vim/status work. No installed package changed.Actual application measurements
Plain st150×47/:197, normal launcher, original saved core-route-counts; one10s run per phase, physical120-key/40ms held PageUp. Growing saved state, not frozen-source controlled A/B/full acceptance. Original Textual18f4 and Textual-main134 have identical trees; the measured pair excludes unrelated native changes. End in the focused editor is caret movement, not source-tail reset.
No snapshot overlaps. Causal stacks after repair contain one release plus one unrelated backend/prompt update, no scroll-watcher emission. Median/p95 callback work improved here; input p95 and worst frame did not. 7ms/full throughput target remains unmet. Retained fixed-key scopes17.81/54.93ms cover22/92 callbacks and different intervening work, neither Footer reconciliation: not an equal-work ratio or subtraction of the old3.31ms footer sample.
Compositor report — OpenHCSDev/toad#61, no compositor patch
The old6.49ms sample's51
arrange_widgetcalls are traversal including leaves, not51 child-layout computations. Its23 Widget.arrange calls total0.27ms; cached-resource restoration2.32ms includes projection/logical membership. Eight warm reflows visit51–52 widgets, call container arrange24–25 times, recompute0–7 arrangements. Recomputations are chrome ancestors: WorkspaceScreen, Horizontal, Container, MainScreen, Center, Vertical; ChannelsSidebar once. Other container calls include Conversation/AgentWindow, prompt/groups, GoalBar, VerticalScroll, SessionDetails, sidebars, header/tabs/history controls.Warm captures do not newly arrange transcript pages. One cold complete61-visit capture includes TranscriptHistory/two TranscriptPageViews/HistoryEdge; the older59-row page(y−127) and one-row edge(y−128) are outside clip y3–27. Cached logical membership still runs: not zero offscreen work or scaling acceptance.
Verification / limits
Canonical results:
docs/performance/scroll-series.md. Evidence:.artifacts/footer-11046/and/home/ts/.cache/agent-scratch/ux-footer-11046/(series, causal traces, profiles, compositor census, real-app receipts). Also corrects the earlier81.97ms figure: summed callbacks across486ms between paints, largest individual callback10.21ms—not one82ms block. OpenHCSDev/toad#61 and OpenHCSDev/toad#64 stay open.