PR Gates / CI image pin matches docker/ci (pull_request) Successful in 13s
PR Gates / Docs update reminder (pull_request) Successful in 18s
PR Gates / decisions lifecycle (pull_request) Successful in 29s
Review verdict / Set review-verdict status (pull_request_target) Successful in 14s
PR Gates / Script tests (pytest) (pull_request) Successful in 1m59s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 9m23s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 6m37s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Skipped
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (pull_request) Successful in 6m20s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 10s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 7s
review-verdict/h10 Review-verdict: MERGEABLE @ 0d0518d (base: main)
PR #768's own run answered the question the identity line was added to answer: Marker identity: job=test run=1916 attempt=1 (from the runner) Marker identity: job=migrations run=1916 attempt=1 (from the runner) Both required jobs, on the build lane, printed to stdout where capture is not in question. So the variable IS exported here, the warn-and-default compromise has served its purpose, and all three identity components now REFUSE rather than falling back to a name other runs share. The residual that compromise left — a rerun inheriting attempt 1's markers — no longer exists. Recording HOW this was settled, because the first two attempts were worthless and the next reader will be tempted by both. Grepping a job log for the variable NAME proves nothing: logs do not dump the environment. Inferring it from the ABSENCE of the script's "not set" warning proves nothing either — that warning goes to stderr, and whether step stderr reaches a job log here was itself never established (the control offered for it turned out to be an ::error:: this script writes to STDOUT). Only making the script report its own resolved identity on stdout, and then reading it, settled anything. The docs said "not established either way", which this run falsifies — so the prose had to change regardless; promoting was the same edit surface. The identity line is kept, now as standing evidence rather than an open question, and is still asserted so it cannot rot into a line nobody can trust. Decisions-Edit: yes Refs: #756