docs(web): deprecate legacy dashboard and define retirement

This commit is contained in:
SToneX
2026-09-23 12:17:26 +08:00
parent 3fb9e82aac
commit b9c2ddd5e0
4 changed files with 40 additions and 6 deletions
+4 -1
View File
@@ -153,7 +153,10 @@ xdist is pulled via `--with`, not the lockfile — same as CI. The Postgres CI j
top of a CLI-path module; the "Lightweight CLI modules" import-linter contract lists them and
fails the build.
- **Frontend rollout.** `frontend/README.md` documents account assignment and rollback.
`src/treg/web/dashboard-legacy/` is a frozen rollback artifact; never hand-edit it.
`src/treg/web/dashboard-legacy/` is **deprecated**, retained only for temporary rollout and
rollback. Never hand-edit it or mirror new features/fixes into it; `frontend/` is the only
maintained Dashboard source. Follow the retirement checklist in `frontend/README.md` to remove
it after rollout, including anonymous entries that still use legacy at 100%.
- **The dashboard** lives in `frontend/` (Vue components, TypeScript entry/transport, Vite).
Build with `bash scripts/build-dashboard.sh`; generated assets in `src/treg/web/dashboard/`
ship with Python. Run `npm --prefix frontend test` and `npm --prefix frontend run test:e2e`.
+7
View File
@@ -212,6 +212,13 @@ shared-link and catalog entries use this decision and `private, no-store` plus `
Environment changes require restarting Web processes. Existing tabs switch on reload; the version
stamp also incorporates rollout settings to offer a refresh when assignment policy changes.
The legacy snapshot is deprecated and scheduled for removal after rollout, not a second maintained
Dashboard. New features and routine fixes belong only in `frontend/`; normal main-branch syncs must
not refresh the frozen artifact. `frontend/README.md` owns the retirement checklist: migrate
anonymous and token-only entries as well as signed-in accounts, then remove the snapshot, legacy
asset route, selection settings and obsolete rollout plumbing. A 100% account rollout alone does
not retire legacy.
`GET /app` serves the selected document same-origin from the Python package, preserving local
sign-in and parked OAuth authorization. Catalog and shared-link handlers modify that same document's
metadata as before. `_app_version()` hashes the built entry, whose asset filenames change with
+22 -4
View File
@@ -14,8 +14,10 @@ This is an incremental extraction. The old use cases still share per-application
`state/context.ts`; their JavaScript and the shared onboarding widgets are not fully typed.
New isolated components should use typed props and events. Existing hash navigation and deep links
remain in the navigation/catalog/details modules; this change does not replace their URL contract.
The frozen rollback artifact lives in `src/treg/web/dashboard-legacy/`; it is not a second
development source. Do not edit it. The server selects the frontend by authenticated user ID.
The deprecated, frozen rollback artifact lives in `src/treg/web/dashboard-legacy/` and exists
only during rollout. `frontend/` is the only maintained Dashboard source. Do not backport features
or routine fixes, or refresh the snapshot when syncing main. The server selects the frontend by
authenticated user ID.
## Develop
@@ -71,5 +73,21 @@ rollback needs no frontend rebuild. Existing tabs switch on reload, and configur
also change the app-version stamp so open tabs can offer a refresh.
The local dev script enables 100% for signed-in accounts by default. Override its rollout variables
to rehearse production settings. Once the rollout is complete, remove legacy and the temporary
selection mechanism in a separate change; even 100% currently leaves anonymous visitors on legacy.
to rehearse production settings.
## Retire the deprecated Dashboard
Legacy is temporary, not a permanently supported version. Remove it in a follow-up change once
the new Dashboard is validated at full account rollout and the release no longer needs the frozen
fallback. Setting the percentage to 100 is not retirement: anonymous and token-only visitors still
use legacy under the current policy.
- Route every Dashboard entry to the compiled app, including anonymous catalog, shared links,
token-only entries and sign-in. Verify those flows and authenticated account flows in the browser.
- Remove `src/treg/web/dashboard-legacy/`, `/app/legacy/assets/{path:path}`, the account-selection
branch, all three `TREG_DASHBOARD_ROLLOUT_*` settings and their app-version stamp inputs.
- Remove obsolete rollout tests, local defaults and packaging checks; retain coverage for the
surviving entry routes, sessions and compiled assets. Update build/deployment documentation and
remove the retired settings from the private deployment configuration in a paired change.
- Remove the deprecation instructions from `AGENTS.md` and context docs once removal ships.
Deployment rollback remains the recovery path after the in-process fallback is removed.
+7 -1
View File
@@ -1,4 +1,10 @@
# Frozen dashboard rollback artifact
# Deprecated Dashboard: temporary rollback artifact
**DEPRECATED. Scheduled for removal after rollout, not a maintained frontend.**
All new features and routine fixes belong in `frontend/`; do not backport them here or refresh
this snapshot during normal main-branch syncs. If a critical security or compatibility problem
requires changing the fallback, explicitly reassess the rollout before regenerating the snapshot.
Retirement criteria and the removal checklist live in [frontend/README.md](../../../../frontend/README.md#retire-the-deprecated-dashboard).
Snapshot of the dashboard and Vue/onboarding/tutorial JavaScript from `81e84d6e19e3b54f7b591d1ea45e99c8c7a4560a`.
Generated with `git show <revision>:src/treg/web/<path>` (dashboard-tour maps to tour).