feat(meta): What's New panel after upgrades + admin update indicator#134
Merged
Conversation
GET /api/meta/whats-new parses CHANGELOG.md for the running version's section (Unreleased fallback for dev builds); the frontend shows a one-time dismissible panel when the server version differs from the last one this browser saw. Fresh browsers baseline silently — first login never opens with a modal. Panel portals to <body>: the header that mounts it has backdrop-blur, which would otherwise contain the fixed overlay. GET /api/meta/update-check (admin-only) compares against the latest GitHub release, cached in memory 24h (1h after failures), gated by TOME_UPDATE_CHECK (default true). Settings -> About shows a quiet "vX.Y.Z available" link only when something is newer. CHANGELOG.md is now copied into the Docker image for the panel. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 18, 2026
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.
Overnight run PR 3/12 — stacked on #133; merge in order.
What
GET /api/meta/whats-newparsesCHANGELOG.mdfor the section matching the running version ([Unreleased]fallback on dev builds). The frontend shows a one-time dismissible overlay when the server's version differs from the last version this browser saw (tome_seen_version). Fresh browsers baseline silently — a first login never opens with a modal.CHANGELOG.mdis now copied into the Docker image.GET /api/meta/update-check(admin-only) compares the running version to the latest GitHub release — in-memory cache, 24h TTL (1h after network failures), 5s timeout. Settings → About renders a quiet "vX.Y.Z available" link only when something is newer; nothing pops up.TOME_UPDATE_CHECK=falsedisables the outbound lookup entirely (air-gapped installs); nothing else phones home.Notes
document.body— it's mounted from the app header, whosebackdrop-blurmakes it a containing block forfixedelements; without the portal the overlay centered on the header bar (caught during visual verification, geometry re-measured after: panel exactly centered).backend.__version__reads package metadata, which trackspyproject.toml's version — bumped at release, so the panel fires exactly on release upgrades. Dev quirk: a stale editable-install can report an old version locally; irrelevant in Docker wherepip install .runs at build.Verification
tome_seen_version→ panel appears with release entries; "Got it" stores the version; measured centered geometry post-portal-fix.