I3794 — The interaction probe drives the controls of /ui and the Cockpit as it drives the site's
Point scripts/interaction-probe at the pages the executable serves (/ui and /cockpit) as well as the built site, so every control claimed by an interaction spec is driven on every surface it appears on, not only on the site.
BLOCKED wave 1 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I3793 is done. The status is derived from that, not declared.
Objective
Point scripts/interaction-probe at the pages the executable serves (/ui and /cockpit) as well as the built site, so every control claimed by an interaction spec is driven on every surface it appears on, not only on the site.
Why
On 2026-10-20 interaction-probe drove the built site only; ui-audit checked /ui and the Cockpit for landmarks, names and console errors but no spec exercised a control's behaviour there, so a copy button or tab that works on the site and fails on /ui passes every gate.
Current state
interaction-probe: site only, sharded by I3602. ui-audit: structure and accessibility on all three surfaces.
Desired state
interaction-probe serves the executable and drives every spec's controls on /ui and the Cockpit too, in the same shards; a control on those surfaces with no spec is a finding, as on the site.
Scope
- scripts/interaction-probe
- scripts/lib/interaction-specs
- scripts/ci/interaction-check
- test/cases/3794_the_probe_drives_every_surface.sh
Dependencies
Acceptance criteria
- interaction-probe reports controls driven on /ui and /cockpit pages, by spec
- A broken control on /ui fails the probe, naming page and control
Validation
- bin/majordomus plan validate
- MJ_TEST_JOBS=4 bash test/run.sh 3794_the_probe_drives_every_surface
Evidence required
- probe_drives_every_surface_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/I3794.yaml. Read it back with majordomus plan show I3794.