Skip to content

I3796 — Every command and its output is one shell block, on every surface

Make terminal-run.html's contract the one shell block: the prompt is drawn and never copied, the copy control copies the command alone, an exit status is a word, and long output folds into a disclosure. Render the kit's terminal components and the /ui and Cockpit reproduce commands through it, so a command looks and copies the same wherever it is shown.

BLOCKED wave 1 · p1 · implementation profile · parallel safe

Part of one-kit-on-every-surface — Code, charts, controls, embeds and shell blocks are one kit on every surface, declared in the design book and held there by a gate.

Blocked. This issue cannot start until I3793 is done. The status is derived from that, not declared.

Objective

Make terminal-run.html's contract the one shell block: the prompt is drawn and never copied, the copy control copies the command alone, an exit status is a word, and long output folds into a disclosure. Render the kit's terminal components and the /ui and Cockpit reproduce commands through it, so a command looks and copies the same wherever it is shown.

Why

On 2026-10-20 commands were shown three ways on the site (recorded runs, the kit's term_* components, sh/bash fences) and as bare code.mj-ui-mono on /ui (claim.rs, idd.rs), with no prompt and no copy control; a reader copying a reproduce command from /ui got nothing to click.

Current state

terminal-run.html: prompt not copied, status word, folded output. Kit term_*: a different look. /ui: bare monospace reproduce lines.

Desired state

One shell block component, server-rendered on /ui and the Cockpit with the same markup and classes as the site's, using I3793's copy control; the kit's term_* components are that block.

Scope

  • site/templates/partials/terminal-run.html
  • site/templates/kit/code.html
  • share/design/kit.css
  • apps/majordomus-cli/src/ui/claim.rs
  • apps/majordomus-cli/src/ui/idd.rs
  • apps/majordomus-cli/src/ui/view.rs

Dependencies

What waits on this

Acceptance criteria

  • The site, /ui and the Cockpit render a command with the same markup and classes, the prompt outside the copied text
  • Copying a /ui reproduce command yields the command alone

Validation

  • bin/majordomus plan validate
  • cargo test --lib ui::

Evidence required

  • one_shell_block_case

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/I3796.yaml. Read it back with majordomus plan show I3796.

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