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
I1509
A detail page that pages nothing has outgrown the reason it pages nothing
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
0- Waiting on
- none
- Holds back
- none
- Behind it in all
0- Evidence
2of2
Moves
plan.transitionWhat it is
- Objective
- Reconcile the two things the Cockpit's largest page is trying to be — complete before any JavaScript loads, and usable by a person — without giving up the first, and bring the page under the test sweep that covers every other one.
- Why
- Measured on today's master from a freshly built executable in this worktree: GET /cockpit/graphs/composed returns 1,196,549 characters and 4,729 table rows in a single document, with no paging control anywhere in it. That is not a bug in the sense of a mistake; docs/COCKPIT.md states in terms that a detail page pages nothing, and gives the reason — a graph's nodes and edges are listed whole because the drawing is an enhancement, a reader without JavaScript has only those lists, and a reader checking whether a path is in the manifest must be able to find it with the browser's own search. The contract is right and its cost has outgrown it: a 1.2 MB document is not searchable by a person either. The second half of the finding is that this page is not covered at all — the test sweep in apps/majordomus-cli/tests/cockpit.rs names /cockpit/graphs, /cockpit/graphs/topology and /cockpit/graphs/registry, and not /cockpit/graphs/composed, so the largest page the Cockpit serves is the one no test renders.
- Now
- 1,196,549 characters, 4,729 <tr> rows, two tables, zero occurrences of a paging parameter, served in 60 ms. Not in the PAGES sweep. The behaviour follows a documented contract that names no size at which it stops applying.
- Wanted
- A reader without JavaScript can still reach every node and edge, and a reader with a browser is not handed a megabyte to scroll. Whatever is chosen — a progressive disclosure that needs no script, a per-part entry like the listings already offer, or an explicit size beyond which the contract changes — is written into docs/COCKPIT.md as the contract rather than left as behaviour. The page is in the sweep.
- Done when
- unknown: the record declares no `completion`
- Risk
- Low in mechanism. The risk is the reflex fix: adding ?page= to a detail page silently breaks the browser-search guarantee that the contract was written for, and it would break it in a way no test currently notices, because no test renders this page.
Acceptance
- Every node and edge of the composed graph remains reachable with JavaScript disabled
- The page a reader receives is not a single document of this size, or docs/COCKPIT.md states the size at which the contract changes and why
- /cockpit/graphs/composed is rendered by the page sweep that covers the other pages
- Validation
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test cockpitbash test/run.sh- Evidence required
complete_without_javascriptpage_is_covered- Evidence present
complete_without_javascriptpage_is_covered
Scope
- Touches
apps/majordomus-cli/src/cockpitdocs/COCKPIT.mdapps/majordomus-cli/tests- Not
Making the nodes and edges reachable only by JavaScript. That is the one outcome the existing contract exists to prevent, and it stays prevented.The other detail pages, unless the same measurement says they are also over. The artifact manifest is named by the same contract sentence and was not measured here.- Depends on
- none
- Priority
- p1
- Profile
- implementation
- Parallel safe
- true
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-09-11
- Updated
- 2026-10-14T11:14:49Z
- Started
- 2026-10-14T11:14:41Z
- Verified
- unknown: the record declares no `verified_at`
- Completed
- 2026-10-14T11:14:49Z
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.