# Ticket: Show authoritative live campaign progress in SD qualifier UI

Status: complete
Type: ticket
Updated: 2026-08-06
Next Action: no further action; retain the web-only rollback tag until the Controller A campaign closes normally
Parent: work/wp/active/wp-build-standalone-pi-sd-qualification-operator-application.md

## Problem

The deployed `/sd-qualifier` records durable run and event progress but does not
summarize it for the operator. During an active Controller A campaign the page
showed `RUNNING` alongside fixture-appliance `BLOCKED` messaging, stale campaign
timestamps and next actions, no current-case or completed/remaining summary,
and no automatic refresh. Repeated run forms also emitted duplicate HTML IDs,
and raw audit payloads overflowed the campaign page.

## Expected Behavior

The operator page distinguishes appliance admission from an already-admitted
campaign, presents current durable run/event truth without implying additional
controller authority, refreshes read-only progress automatically, and remains
usable at desktop and mobile widths.

## Acceptance Criteria

- [x] Dashboard and campaign detail show completed, open, attention-required,
      and total run counts derived from durable `Run` records without inventing
      an unrecorded planned total.
- [x] Campaign detail shows the active run identity, specimen/controller, current
      case or operation, heartbeat age, latest event, and last activity time.
- [x] Appliance readiness and campaign execution are labelled separately so an
      active A-only campaign does not appear stopped merely because the general
      live-admission gate is closed or Controller B is intentionally disabled.
- [x] Read-only progress refreshes automatically without posting forms, minting
      intents, contacting controllers, or changing campaign state.
- [x] Repeated forms have unique prefixes/IDs and labels target the correct
      controls.
- [x] Campaign audit payloads and the mobile dashboard no longer create document
      horizontal overflow.
- [x] Focused tests, the complete application suite, isolated deployment health,
      authenticated Playwright desktop/mobile review, production deployment, and
      post-deploy health/source-identity checks pass.

## Verification

Candidate and deployment evidence is recorded in
`work/evidence/sd-qualifier-authoritative-progress-candidate-20260806.md`.
Focused/view tests, the complete `230/230` Linux suite, exact-image health, and
authenticated desktop/mobile review pass. Production web runs the exact
candidate while controller tools and workers retain the prior qualified image;
the approved Controller A matrix continued without interruption.
