A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I2483
The UI is published as a snapshot: read once at the published commit and carried by the site at /ui
Where it stands
devtask.issue- Readiness
- complete completion is recorded and every required evidence token is present
- Status
- DONE
- Can start
- not now
- Milestone
- Milestone status
- ACTIVE
- Wave
2- Waiting on
- none
- Holds back
- Behind it in all
1- Evidence
4of4
Moves
plan.transitionWhat it is
- Objective
- Let a person who has not cloned the repository open majordomus ui on the public site: the UI's own answers for every screen and panel, and for the inspectors they link to up to a bound, written as static files at the commit the site publishes, every page saying it is a snapshot and none of them leading to nothing.
- Why
- The owner asked on 2026-10-12 that majordomus ui be on GitHub Pages and chose a static snapshot read at a pinned commit over documentation only (ADR 0141). Until now the web topology declared the UI served-only, the site never named it, and the product's primary surface (ADR 0135) could be seen only by running a server in a checkout.
- Now
- The UI is a native route of the shared server and of nothing else. gh-pages holds no /ui. A static copy made by saving the pages would keep links to routes and queries a file host cannot answer, and its script would read the page again from a host that ignores the query.
- Wanted
- `majordomus web report ui-snapshot [--limit N] [--budget-seconds S]` asks the UI in-process for every screen and panel and then, one page per family in turn until the page bound or the time budget is reached, for the pages they link to, and writes each answer under target/web/ui-snapshot: links between pages relative, an inspector's query a directory of its own, a link only a process answers led to the snapshot's page about the live UI with the path it meant, a link to a published surface kept, the assets copied, the body marked data-snapshot so the script reads nothing again, and every page stamped with the commit, the time and the executable. The producer's surface.json declares it published-only at /ui, built from this commit, so the topology holds it beside the served UI without a collision. The Pages workflow builds it in a job of its own beside rustdoc and the deploy job places it at /ui after the site's checks, refusing a snapshot of another commit. docs/MAJORDOMUS_UI.md and docs/GITHUB_PAGES_ARCHITECTURE.md say what a visitor sees and what a snapshot cannot know.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- the snapshot holds every screen its own navigation names, and a second run with a smaller bound leaves no page of the first
- no page keeps an absolute link under /ui, and every relative link names a file the snapshot holds
- a link to the Cockpit, the API or a form leads to the page about the live UI, carrying the path it meant
- every page says the commit it was read at, and the script fetches no panel and refreshes nothing in a snapshot
- the declaration is a published-only surface at /ui built from this commit, and the topology validates with it beside the served UI
- the Pages deploy places the snapshot of the commit it publishes at /ui and refuses one of another commit
- Validation
cargo test --lib web::report::snapshottest/run.sh 1092_the_ui_snapshot_holds_every_screentest/run.sh 1093_the_ui_snapshot_links_nothing_absenttest/run.sh 97_pages_fast_pathtest/run.sh 26_ci_wiring- Evidence required
ui_snapshot_unit_testsui_snapshot_case_1092ui_snapshot_case_1093ui_snapshot_on_pages- Evidence present
ui_snapshot_unit_testsui_snapshot_case_1092ui_snapshot_case_1093ui_snapshot_on_pages
Scope
- Touches
apps/majordomus-cli/src/web/report/snapshot.rsapps/majordomus-cli/src/web/report/mod.rsapps/majordomus-cli/src/commands/web.rsapps/majordomus-cli/src/cli.rsshare/ui/ui.js.github/workflows/pages.yml.ai/repo/adrs/0141-the-ui-is-published-as-a-snapshot-read-at-one-commit.md.ai/repo/project/issues/I2483.yamldocs/MAJORDOMUS_UI.mddocs/GITHUB_PAGES_ARCHITECTURE.mdtest/cases/1092_the_ui_snapshot_holds_every_screen.shtest/cases/1093_the_ui_snapshot_links_nothing_absent.sh- Not
- unknown: the record declares no `non_scope`
- Depends on
- Priority
- p1
- Profile
- implementation
- Parallel safe
- false
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-10-12
- Updated
- 2026-10-13T12:49:21Z
- Started
- 2026-10-13T12:47:49Z
- Verified
- 2026-10-13T12:48:08Z
- Completed
- 2026-10-13T12:49:21Z
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
Nothing is wrong with these records.