ci: the daemon-tests marker and our check, job and step names name no runner OS

Merged
TE
10d ago
+79-66

Leo: "ok do NOT label stuff as os=linux..."

Takes back #25758: only its "os" field in the daemon-tests marker and the OS word in the gate job name, per the order quoted above. The gate still runs where #25758 put it.

What changes

The daemon-tests marker. cmux-tui-mark-daemon-tested.sh stops writing the "os" field into tree/<key>/daemon-tests.json (added by #25758), and cmux-tui-artifacts.yml drops the runner_os output and TESTED_OS env that fed it.

Backward compatibility. Every reader of the marker (request-nightly-next.sh, tree-preflight, tree-owner-wait, cmux-tui-point-channel.sh) checks only that the marker exists, so markers already published with "os" and new markers without it promote the same way. request-nightly-next.test.sh now covers a marker that still carries the old field, and the reader's comment says only presence counts. A run already in flight uses its own commit's files and writes the old shape, which still promotes.

The gate job's name goes from cmux_next_ daemon tests (Linux) to cmux_next_ daemon tests. cmux_tui_publisher_testing.py already matched both the bare name and any (...)-suffixed name. Older runs' (macOS) and (Linux) jobs still count, and the test now covers both. The gate's test file is renamed tests/test_cmux_tui_daemon_tests_gate.py, with its ci-guards.yml step, test-execution.toml entry and comment references updated. The test now also asserts that the job, its steps and the marker name no OS.

Other check, job and step names our lane owns, with every consumer updated in the same change:

WhereBeforeAfter
cmux-next-car-guards.yml job name / artifactcar guards (linux) / car-guards-<car>-linuxcar guards (portable) / car-guards-<car>-portable (retention allowlist updated; the job id stays)
cmux-next-terminal.yml job namesterminal crates (Linux), Swift terminal packages (Linux)... (portable)
swift-packages-linux.yml workflow and job namesSwift packages (Linux), swift test <group> (Linux)... (portable)
nightly.yml build-nightly-linux-inputsno name: (check showed the id)name: build nightly inputs (the id stays, because needs:, the step-coverage map and open PRs key on it)
nightly.yml download steps... built on Linux (cmux-next), ... generated on Linux (cmux-next)... beside the app (cmux-next) (test constants updated)
cmux-next.yml web-bundle download steps (x3)... this run's Linux job built... this run's bundle job built (test updated)
cmux-next-guards.ymlThe Linux cross build's macOS link stubs ...The cross build's macOS link stubs ...
ci-guards.yml step names (6)... on Linux / Linux ...neutral wording

No branch ruleset on feat-cmux-next requires any of these checks, so no required check is renamed. Job ids, cache keys and runs-on labels are unchanged.

Left alone

  • cmux-next/linux-compile and the compile and REF-capture step names in cmux-next.yml: another change in flight renames these to cmux-next/compile.
  • Teammates' jobs and steps: these are reported to the coordinator, not changed here.
  • Ours but out of scope here: the regen-linux dispatch mode in cmux-next-batch.yml (an input value that next_batch.py sends), the classic ci.yml/ci-macos.yml gate step names, the Install Linux build dependencies steps outside the gate job, and the swift-packages-linux.yml file name.

Risk

Low. The changes are label renames plus one marker field removed. The one behavioural reader, the publisher job lookup, keeps matching old and new names.

Tests

These run on a remote box through cmux-ci test: test_cmux_tui_daemon_tests_gate.py, test_cmux_tui_publisher_testing.py, test_ci_tui_routes_avoid_nightly_label.py, test_tui_publish_workflow_security.py, test_cmux_next_checks_workflow.py, test_nightly_helpers_beside_release_build.py, test_ci_upload_artifact_retention.py, test_nightly_step_coverage.py, test_ci_linux_compile_runners.py, test_cmux_tui_lane_daemon_tests.py, test_cmux_tui_owner_wait_defers.py, request-nightly-next.test.sh and validate_test_execution_registry.py.

Agent session: agent session

šŸ¤– Generated with Claude Code