Skip to content

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

Part of a-prompt-reaches-the-work-it-serves — A captured prompt is matched to its existing intent and recorded on the task that follows, joined to its outcome and evidence, shown on /ui and the Cockpit, read only on its own machine and never published.

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.

Searches the titles and descriptions of every page this site publishes.