I3793 — One copy control and one tab control ship to every surface
Make kit.js's dependency-free copy and tab controls the only ones: replace the Alpine copy button and Alpine tabs on the site with them, and ship them to /ui and the Cockpit as byte copies held by scripts/cockpit-assets --check, the way nav.js and theme.js already travel, so a code block, a command or a set of tabs behaves the same on every surface.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3793 bude přijato.
Cíl
Make kit.js's dependency-free copy and tab controls the only ones: replace the Alpine copy button and Alpine tabs on the site with them, and ship them to /ui and the Cockpit as byte copies held by scripts/cockpit-assets --check, the way nav.js and theme.js already travel, so a code block, a command or a set of tabs behaves the same on every surface.
Proč
On 2026-10-20 the site had two copy implementations (Alpine in components.html and terminal-run.html, data-copy in kit.js) and two tab implementations (Alpine and kit.js), each with its own interaction spec, and /ui and the Cockpit had no copy control at all; the owner asked for one kit everywhere.
Aktuální stav
copy-button.mjs and kit-copy.mjs specs; tabs.mjs and kit-tabs.mjs specs; no copy or tabs on /ui and the Cockpit.
Cílový stav
One copy and one tab implementation, one spec each, present on the site, /ui and the Cockpit; a second implementation planted fails the design check that names it.
Rozsah
- site/kit.js
- site/templates/components.html
- site/templates/partials/terminal-run.html
- share/ui
- share/cockpit
- scripts/cockpit-assets
- scripts/lib/interaction-specs
- scripts/ci/design-check
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I3794BLOCKED The interaction probe drives the controls of /ui and the Cockpit as it drives the site's
- I3796BLOCKED Every command and its output is one shell block, on every surface
Kritéria přijetí
- The site, /ui and the Cockpit load the same copy and tab code, byte-identical, checked by cockpit-assets --check
- No Alpine copy or tab component remains on the site, and one interaction spec covers each control
- A second copy or tab implementation planted on any surface fails a gate that names it
Validace
- bin/majordomus plan validate
- scripts/cockpit-assets --check
- scripts/interaction-probe
Požadované důkazy
- one_copy_and_tab_control_case
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3793.yaml. Read it back with majordomus plan show I3793.