Repository navigation
Fix flaky SettingsDialog watcher snapshots - #1155
Merged
Merged
Conversation
The watcher stories (WithRules, ManyRules, DeferralDisabled, WatcherEmpty, and Light/Dark/Narrow) flipped between two snapshots on most PRs since #1179's builds. `waitForTopicScroll` returned once scrollTop was within 2px of the topic, which could leave the animation's last frame queued; that frame re-reads the topic's position, so on some runs it undid `showWatcher`'s scroll and Argos captured the Notifications heading instead of the watcher. A wheel event cancels the animation, as user input does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying mouseterm with
|
| Latest commit: |
aa1f8e9
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://eb0a2a53.mouseterm.pages.dev |
| Branch Preview URL: | https://flaky-settings-snapshot.mouseterm.pages.dev |
dormouse-bot
approved these changes
Oct 17, 2026
nedtwigg
requested a deployment
to
hosted-preview
October 17, 2026 01:00 — with
GitHub Actions
Waiting
This branch is waiting to be deployed
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.
Every PR has been showing settings-page snapshot deltas that mean nothing. Argos builds 1179–1205 show which stories flip: WithRules, ManyRules, DeferralDisabled, WatcherEmpty, and Light/Dark/Narrow, which reuse WithRules. Every one of them runs
showWatcherin its play, in both Chromium and WebKit.Root cause.
showWatcherselects Notifications, then scrolls instantly to the animation watcher.waitForTopicScrollreturned oncescrollTopwas within 2px of the topic, but the topic animation's lastrequestAnimationFramestep could still be queued. That step re-reads the topic's position and callsscrollTo, so on some runs it ran after the watcher scroll and put the view back on the Notifications heading. In PR #1150's ManyRules diff, the base is the heading and the compare is the watcher.Fix. Once the scroll settles,
waitForTopicScrollfires a wheel event, which cancels the animation the same way user input does.ScrollFollowsContentsalready does this. Nothing can move the scroller after that.Verified locally with
vitest.argos.config.tson the SettingsDialog stories, comparing screenshot hashes for the 7 stories × 2 browsers:The first Argos build on this PR may report the watcher stories as changed against a baseline that captured the heading. Approve that build once.
🤖 Generated with Claude Code