{# Shared run identity + two-step review sequence (issue #117, Phase B). Rendered at the top of BOTH review surfaces: the workbench ("who is speaking", step 1) and the transcript stepper ("check the words", step 2). It gives the operator one recognizable run name and a clear "where am I in the sequence" orientation, so the two screens read as one journey instead of two unrelated pages. STATIC BY CONSTRUCTION: a pure function of (run, current_step). It owns NO progress counter and NO claim/action controls. Step 1 progress stays inside the htmx-swapped #labels region; Step 2 progress stays inside the ReviewStepper island and its server fallback; the claim-state line and the one dominant Continue per step stay with each page. A shared header cannot own live progress without going stale the moment the operator acts (plan §6 review note). #} {% macro review_journey(run, current_step) %}
Added {{ run.created_at.strftime("%Y-%m-%d") }} · {{ run.id.hex[:8] }}