Scrolling up in a streaming transcript is undone; follow-the-tail @live specs time out against the fixture #80
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The two
@livespecs inui/e2e/follow-the-tail.spec.ts("stays at the bottom while the content below it grows" and "but stops following the moment the operator scrolls up") time out inpage.waitForSelector('[data-lines]')after 15 s in the full lane, withOSF_URLat the fixture backend (ui/dev/fakeosfd.py --status). Same on main at850dbaband588c234.Cause
/run/{id}for the first running run. A run waiting on a review gate opens on the review, not a transcript, so there is no[data-lines]. The fixture's add-auth always has a gate open, and a real run can too.sample()measured the first scrollable element on the page, which since the run rail arrived is the rail. The scroll-up spec passed while checking nothing.scrollToIndex, which re-aims at its target for 150 ms after every measurement, and the revealing row asks to follow every frame, so one is always pending. When the operator wheels up, the rows coming into view are measured and virtua puts the view back at the tail. The original spec, pointed at the transcript, reproduces it 5 of 5. virtua 0.52.7 behaves the same.Fix
OpenSpec change
transcript-follows-the-tail:[data-lines].tail-demorun whose transcript overflows and grows a line every quarter second.Shipped on branch
claude/gifted-mestorf-47cad3(not merged to main yet) as6329496(proposal),0b4670c(fix) and14a5b5d(archive), OpenSpec change2026-09-27-transcript-follows-the-tail.scrollToIndex, so scrolling up while an agent streams stays up. Opening a transcript repeats that scroll each frame until the height holds and stops when the operator scrolls away. A scroll the transcript made itself no longer clears the pin; without that, a transcript opened ~1200px short of its bottom.follow-the-tail.spec.tsopens the running agent step with the longest transcript, measures[data-lines], and checks the transcript opened at its bottom and that a scroll up left the tail. Each check fails on the old code, with following disabled, and with the own-scroll guard removed. Known gap: reverting only the per-frame follow path toscrollToIndexdepends on timing and slips through.tail-demorun whose transcript overflows and grows a line every quarter second.agent-transcriptspec gains "The transcript follows its tail until the operator scrolls away".Verified with the fast lane and the full lane with
OSF_URLat a--statusfixture (92/92 browser, including both follow-the-tail specs, in 2 of 3 runs; the other had one timeout indelegation.spec.ts's subagents-panel spec with four workers, which passes 4/4 on its own with and without the change), and in a real browser with a mouse wheel.Merged to main in #81 (rebased, so the hashes changed):
23676f4(proposal),94ff32b(fix) andc9b2610(archive). They replace6329496,0b4670cand14a5b5dquoted above; the changes are identical.