{test.executed_at ? (
<>
{test.executed_at}
{test.executed_at_overridden && (
· overridden
)}
>
) : (
Not yet executed — use the "→ Executed" transition above to stamp.
)}
Evidence
{canWriteBlue ? 'Drag files here or click to pick' : 'Read-only — no upload permission'}
{canWriteBlue && (Accepted: {EVIDENCE_ALLOWED_EXTENSIONS.join(' · ')} ·{' '} max 25 MB / file
)} handleFiles(e.target.files)} data-testid="evidence-file-input" /> {canWriteBlue && ( )} {dropError && ({dropError}
)}No evidence yet.
) : (| File | Size | By | SHA256 | |
|---|---|---|---|---|
| {ev.original_filename} | {formatBytes(ev.size_bytes)} |
{ev.uploaded_by_email ?? ' |
{ev.sha256.slice(0, 12)}…
|
download {canWriteBlue && ( )} |
Loading…
; } if (detail.error instanceof ApiError && detail.error.status === 404) { return (Last touched{' '} {formatRelative(test.updated_at)} {test.last_actor_email ? ` by ${test.last_actor_display_name ?? test.last_actor_email}` : ''}
Objective: {test.snapshot_objective}
)} {test.snapshot_procedure_md && (
{test.snapshot_procedure_md}
{test.snapshot_expected_red_md}
{test.snapshot_expected_blue_md}