Skip to content
Cockpit0.29.0
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
2 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1509

majordomus plan verify I1509

majordomus plan done I1509

What 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.