I3283 — The UI opens the message a record cites, and the published snapshot shows only the reference
Draw every workspace: reference in a record's provenance as a link in /ui (through ui::prose) to a served, local-only message view, list on a conversation's view the records promoted from it, and render the reference as plain text in the published snapshot.
BLOCKED wave 5 · p2 · implementation profile · parallel safe
Blocked. This issue cannot start until I3282, I1309 are done. The status is derived from that, not declared.
Objective
Draw every workspace: reference in a record's provenance as a link in /ui (through ui::prose) to a served, local-only message view, list on a conversation's view the records promoted from it, and render the reference as plain text in the published snapshot.
Why
The owner's demand is that every promoted record drills back to conversation#message from the UI; ADR 0032 allows served, never published, so the asymmetry must be a tested property of the snapshot. Critique 2026-10-18: CI holds no store, so a leak check that never holds one proves nothing; and the owner asked for the drill-back across UI, cockpit, docs and a deployed release. Proposed in ADR 0211 (A record promoted from a workspace cites the message it came from by a typed reference that validates in every checkout and resolves only where the store is held) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c239#0.
Current state
apps/majordomus-cli/src/ui/prose.rs links known record ids; no workspace view exists.
Desired state
An intent, ADR or issue inspector shows its sources; one click opens the message; the snapshot build contains no message text.
Scope
- docs/MAJORDOMUS_UI.md
- apps/majordomus-cli/src/ui/prose.rs
- apps/majordomus-cli/src/ui/mod.rs
- apps/majordomus-cli/src/ui/intent.rs
- apps/majordomus-cli/src/ui/issues.rs
- apps/majordomus-cli/src/ui/source.rs
- apps/majordomus-cli/src/cockpit/intents.rs
- apps/majordomus-cli/src/cockpit/plan.rs
- apps/majordomus-cli/tests/ui_links.rs
- site/templates/issue.html
Out of scope
- Showing message text on the published site
Dependencies
- I3282BLOCKED A workspace reference resolves to its message where the store holds it, and says 'not held here' where it does not
- I1309BLOCKED The boundaries this milestone asserts are gates, not sentences
What waits on this
Acceptance criteria
- A record's workspace source is a link on /ui that opens the message
- A conversation view lists the records citing it, derived from the records alone
- The published snapshot of the same record contains the reference and no message text
- A test case builds the UI snapshot and the site inside a fixture checkout whose .ai/local/workspaces store holds a canary message and title, and fails when either canary appears in the output
- After a deploy, majordomus.dev shows a promoted record's workspace reference as text with no message content
- /cockpit draws a record's workspace reference the way /ui does
- A site docs page explains workspace references and ships in a released version
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test ui_links
- majordomus generate --check
Evidence required
- test_ui_workspace_reference
- case_nothing_synced_is_published
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/I3283.yaml. Read it back with majordomus plan show I3283.