I3435 — A Cockpit snapshot withholds every page that reads a capability refusing remote callers, not only the continuity page it names
Replace the Cockpit subject's single-route list (snapshot.rs:111-114) with the same check I3433 gives the UI subject. The check takes the readings each Cockpit page declares in cockpit/pages.rs and withholds a page that reads an unlisted capability or one that declares I3434's checkout-private field. /cockpit/continuity stays withheld by that rule rather than by name.
BLOCKED wave 2 · p2 · implementation profile · parallel safe
Blocked. This issue cannot start until I3433, milestone:a-prompt-reaches-the-work-it-serves are done. The status is derived from that, not declared.
Objective
Replace the Cockpit subject's single-route list (snapshot.rs:111-114) with the same check I3433 gives the UI subject. The check takes the readings each Cockpit page declares in cockpit/pages.rs and withholds a page that reads an unlisted capability or one that declares I3434's checkout-private field. /cockpit/continuity stays withheld by that rule rather than by name.
Why
The owner's 2026-10-19 Cognitive Fabric pack applies the whitelist to every public view, the Cockpit included (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/05_SURFACES.md, verification/ACCEPTANCE.md).
Current state
apps/majordomus-cli/src/web/report/snapshot.rs:111-114 withholds only /cockpit/continuity, a list of routes rather than of readings. The Cockpit pages are declared in apps/majordomus-cli/src/cockpit/pages.rs.
Desired state
Each Cockpit page is published or withheld by what it reads.
Scope
- apps/majordomus-cli/src/web/report/snapshot.rs
- apps/majordomus-cli/src/cockpit/pages.rs
Out of scope
- The UI subject (I3433)
- Changing what the live Cockpit serves
Dependencies
Acceptance criteria
- /cockpit/continuity is still withheld, now by the rule
- A fixture Cockpit page reading a checkout-private capability is withheld
- Every other current Cockpit snapshot page renders byte-identically to before
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib web::report::snapshot
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test cockpit
Evidence required
- a_cockpit_snapshot_publishes_only_declared_readings
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3435.yaml. Read it back with majordomus plan show I3435.