feat(frontend): pathname-addressable views, deep links survive login, config page layout

Every view (/activities, /analysis, /plan, /profile, /config) is now
driven by the URL -- one pushState/popstate navigate() replaces the
tab/profile/config state flags, so all views deep-link, survive reload,
and honor Back/Forward. A logged-out visit to any path is stashed by
LoginGate and restored (replaceState) on the first render after the
OIDC round-trip, which otherwise always lands on '/'. The config page
gets Profile-style card spacing and a wider card so environment values
fit on one line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 20:23:05 +02:00
parent 49ebd289a4
commit 5ebb0f756d
5 changed files with 77 additions and 39 deletions

View File

@@ -608,12 +608,19 @@ button:disabled {
max-width: 580px;
}
.profile-page {
.profile-page,
.config-page {
display: flex;
flex-direction: column;
gap: 1.75rem;
}
/* Wider than the default .kind-editor cap: the environment card lists
URLs/paths as single-line monospace values that would otherwise wrap. */
.config-page .kind-editor {
max-width: 900px;
}
.training-type-list {
list-style: none;
margin: 0;