Skip to content

Final review fixes: linked-up player removed by the page, video delay audio, sync, Sources, background rules - #423

Merged
Nawid3333 merged 15 commits into
mainfrom
fix/final-review
Oct 10, 2026
Merged

Nawid3333 merged 15 commits into
mainfrom
fix/final-review

Conversation

@Nawid3333

@Nawid3333 Nawid3333 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Final review of the whole repo (2026-10-10): the findings that held up. Each fix has a test that fails on the old code.

Player

  • A page that removed a player after it had linked up (a re-render) kept its own video hidden and paused until FastStream was turned off or the page navigated. The page now gets its video back (content.js; e2e in content-cleanup).
  • Video delay: a resync that gave up left the spare audio player playing muted; and a speed changed while the delay was 0 never reached the kept audio players, so the sound drifted for good once the delay was set again.
  • Subtitle sync: removing the track being synced, while another fine-time panel was on top, brought the sync timeline back for the removed track.
  • Sources: the Play button stayed on "Loading" after a source failed.
  • Audio track list: a video without audio levels kept the previous video's list.
  • Bilibili: a video without sound (audio null) was never detected.
  • DownloadEntry: a watcher removed while watchers were being told made the next one miss the news; a throwing progress handler stopped the rest.
  • CSS: the shake animation's rotate(0eg) and font-weight: medium were invalid.

Background

  • Toolbar cycle on an mpv-allowlisted page (MPV -> Off -> On): an On picked by hand went off again on the first page of the site the allowlist does not name; it now stays for the tab, like the plain toggle (your call). The MPV the list started still ends when the tab leaves the list (unit tests for both; toolbar-state/off-race/recover e2e pass; toolbar-cycle-mpv runs on CI's Windows shard).
  • A blocked-header rule given up after failed removals left its id in Firefox, and every later rule with that id failed to add (remove + add in one call now).
  • A tab closed right as the event page woke came back as a phantom tab state.
  • StreamLengths' queue let a woken waiter race a new caller (5 probes instead of 4).
  • A custom source pattern with an unknown type ("hsl") was accepted silently and matched nothing; it is reported now.
  • application/ogg streams went to the MP4 player; they play directly now.
  • Facebook: a batch whose first manifest was already reported dropped a new video after it.
  • content.js: a refused fullscreen request left the fullscreen state on.

Cleanup and docs

  • Removed the mixer/clip/channel helpers and ReferenceTypes.ANALYZER, left over from the audio settings window and the speech detector (no caller anywhere).
  • README: "RAM and disk" FAQ (what each setting does, incl. the new disk switch); the old "browsers offload RAM to the SSD" sentence was wrong.
  • CI: the MP4 fixture cache save may fail like the ffmpeg one; on Linux a failed pactl set-default-sink stops the job with an error instead of testing sound on the wrong sink; amo-signing-failsafe reports a failed upload as an error, not pending.
  • content-overlays e2e: the fullscreen bar case (failed twice on main's Windows shard, then passed on a re-run) now says what held the bar up.

Not changed on purpose: FASTSTREAM_MPV_DEBUG=0 turns the host log on. A fix means a host change, which must raise the host version, and that tells every user to reinstall the host. It can go with the next real host change.

Checks: lint, tsc, vitest (2233 passed), build; e2e: content-cleanup (28), content-overlays (8), sources-browser-ui, video-delay, subtitle-sync.

🤖 Generated with Claude Code

Nawid3333 and others added 15 commits October 10, 2026 20:44
…CI, README FAQ)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…m name

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; e2e uses the fixture origin

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er that had linked up

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ys what held the bar up

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ER left from the audio settings and speech detector

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… while the delay was off

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oes not bring the timeline back

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the tab, like the plain toggle

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Nawid3333
Nawid3333 merged commit 4792474 into main Oct 10, 2026
38 of 39 checks passed
@Nawid3333
Nawid3333 deleted the fix/final-review branch October 10, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant