dev #55

Merged
richard merged 15 commits from dev into main 2026-08-23 12:37:25 +02:00
Owner

Release v1.20.0

Features

  • Auto fullscreen on play + exit fullscreen when video ends (independent toggles, off by default)
  • User-facing changelog page (curated, 4 languages) + one-time update toast on YouTube
  • Help page: full audit (~50 missing settings documented), Comments & Chat and
    SponsorBlock sections, setting names deep-link to the settings page
  • Privacy notice moved from Dashboard to Help; unified header nav on all pages

Fixes

  • SponsorBlock fetch: 10s timeout, failures no longer cached for 30 min
  • Source links point to git.365devnet.eu (was codeberg.org)

Release

  • Single release artifact: website/downloads/cleanwatch-latest.zip (also the store upload)
  • Full details in CHANGELOG.md under 1.20.0
Release v1.20.0 Features - Auto fullscreen on play + exit fullscreen when video ends (independent toggles, off by default) - User-facing changelog page (curated, 4 languages) + one-time update toast on YouTube - Help page: full audit (~50 missing settings documented), Comments & Chat and SponsorBlock sections, setting names deep-link to the settings page - Privacy notice moved from Dashboard to Help; unified header nav on all pages Fixes - SponsorBlock fetch: 10s timeout, failures no longer cached for 30 min - Source links point to git.365devnet.eu (was codeberg.org) Release - Single release artifact: website/downloads/cleanwatch-latest.zip (also the store upload) - Full details in CHANGELOG.md under 1.20.0
Two new toggles (both off by default) under Watching → Video Player:

- Auto fullscreen on play: one synthetic click on YouTube's own fullscreen
  button per video, so the browser's user-gesture rule makes it work for
  the click-a-video case and silently skip reloads/new tabs. A manual
  exit is never fought.
- Exit fullscreen when video ends (nested): calls exitFullscreen on
  'ended' so swipe-back navigation works again, but stays fullscreen when
  autoplay-next is on or the playlist panel shows a further item. The
  decision is a pure helper (FY_SHOULD_EXIT_FULLSCREEN_ON_END) with its
  own test file.

The three player selectors involved are registered in the selector audit.
Labels added in en/nl/de/fr; autoFullscreen is available as a popup quick
action. Version 1.20.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- changelog.html (linked from the Help page header) renders a curated,
  fully translated changelog from the new changelog-data.js: one release
  per version back to 1.0.0, the 0.x era collapsed into one section. A
  test pins the newest entry to the manifest version so a release
  without changelog content fails the suite.
- On update, background.js stores the new feature titles (all languages,
  spanning skipped versions) and the next YouTube page shows them once
  as a toast with a "See what's new" link; auto-hides after 8s, pauses
  while hovered. Toggle: Data & Sync → Updates → Show update
  notifications (on by default).
- shared-globals contract test now knows changelog-data.js is loaded
  only by background.js and the changelog page; page-load suite and the
  store zip include the new files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The version cards render inside #changelog-list, which is a single flex
child of .main — its gap never reached the cards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The newest three versions render expanded; everything older collapses to
its version header with a chevron. Click or Enter/Space toggles a card
(header is keyboard-focusable with aria-expanded).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All four pages (settings, dashboard, help, changelog) now show
Settings → Dashboard → Changelog → Help, with the current page's badge
occupying its own slot. Dashboard and settings gained the Changelog
link; dashboard's badge no longer sat between the links.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Their content area capped at 960px while dashboard uses 1320px
(settings' 1440px includes its sidebar). Both pages share help.css, so
one change covers them; headers stay at 960px like every other page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CHANGELOG.md stays the full developer record; changelog-data.js gets a
curated, translated user-facing entry every release.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The help page's About section (all four languages) and the README still
linked codeberg.org; the repo now lives at git.365devnet.eu. Historical
CHANGELOG.md entries are left as written.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Help reference brought up to date in all four languages: it had
  drifted ~50 settings behind. New Comments & Chat and SponsorBlock
  cards; homepage/player/search/focus/dataSync sections extended to
  cover every current feature. Static English fallback tables in
  help.html regenerated to match.
- Every setting name in the help tables now links to
  settings.html#q=<label>; the settings page prefills its search from
  the hash and filters to that feature, falling back to the unfiltered
  page when nothing matches.
- Exit fullscreen when video ends no longer nests under auto fullscreen
  in the settings UI — the two toggles were always independent in
  behavior.
- Both changelogs updated, including a user-facing 1.20.0 entry for the
  clickable help reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The notice now renders below About 365DevNet as a full-width help card;
its i18n strings moved from the dashboard to the help namespace in all
four languages. The dashboard keeps Reset stats / Reset watch time in a
slimmed "Reset data" card, and every stale cross-reference to the
dashboard's privacy view was corrected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The segment request could hang forever on a dead server; it now aborts
after 10 seconds. Only definitive answers (success or 404) enter the
30-minute cache — a timeout or network error retries on the next
navigation instead of blanking SponsorBlock for that video for half an
hour. Playback never waited on this fetch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
website/downloads/cleanwatch-latest.zip is now the only build output;
the same file is uploaded to the Chrome Web Store, so every channel
ships identical bytes. Removed the git-ignored CleanWatch-store-upload
zip and its .gitignore entry; documented the rule in CLAUDE.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
365DevNet/CleanWatch!55
No description provided.