From dc245ab6ea2513395053f270e601c9c1216a6d84 Mon Sep 17 00:00:00 2001 From: jay Date: Mon, 8 Jun 2026 09:05:57 -0400 Subject: [PATCH] Unify navigation: URL-backed views, one shared history MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per audit (user + Codex): the in-page Back and browser Back were two separate histories, which is confusing — especially for less-technical users. Make the URL the single source of truth so both traverse one history. * The view derives from the URL (/?view=latest, /?tag=, /?source=, bare / for Highlights); `selected` is $derived from $page.url. * All navigation goes through goto(); afterNavigate is the single loader hook, so in-app clicks AND browser back/forward reload the same way. * The in-page Back button now just calls history.back() (fallback to Highlights) — identical to the browser Back. Removed the private navStack. * Stop stripping ?source= — the URL stays honest, so source/tag views are shareable and survive reload. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/routes/+page.svelte | 103 ++++++++++++++++++------------- 1 file changed, 61 insertions(+), 42 deletions(-) diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 2b69dd6..fd25d75 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,6 +1,7 @@