ci: display tests gate nothing; a display-only suite skips with a notice
Leo, 2026-10-31: "i dont like doing display tests anymore"
Display tests (Swift suites whose traits skip without a display, the scripts/ci/display-suites.txt list) no longer gate anything here. Tests are not deleted; they still run where a display is asked for.
Routing change
scripts/ci/package-test-lane.sh suite: a suite that ran none of its tests because every skip names a display now readsskipped (needs a display)with a::noticeand does not fail the step. Before (cmux#26870) it was a redno result (0 ran), so a lane that named a display suite had to wait for agui-session-v1display worker (about 30 such steps queued 45+ minutes). It stays a red when the step asked for a display:CMUX_TEST_REQUIRE_GUI=1, orCMUX_CI_DISPLAY_ROUTED=1(cmux-ci's opt-in--display, companion cmuxterm-hq PR). Any other zero-ran suite (no reason, missing cmux-tui) is stillno result. The summary saysN of M suites passed; K skipped (needs a display, not gating).cmux-next.yml: swift-test, daemon-test and generated-files setCMUX_TEST_REQUIRE_GUI=1on a mini only offpull_request, so on a PR display suites skip and a lost console session never fails a PR job. Pushes keep it as advisory coverage.
Risk: a regression only a display suite catches (drag, motion, window placement, pasteboard) is no longer caught at PR time. Those suites still run on push and on demand (cmux-ci run --display). None of them is the only check for a crash on launch: the nightly fresh-home launch smoke covers that.
Tests: tests/test_ci_package_lane_suite_skips.py (the display-only case passes with a notice; routed and CMUX_TEST_REQUIRE_GUI=1 cases still fail; no-reason and missing cmux-tui stay no result). Run on an exported tree: 19 of 20 pass; the one failure scans Packages/ sources the export left out.
Agent session: agent session
š¤ Generated with Claude Code
Summary by cubic
Display-only test suites no longer block CI lanes. Previously, a Swift suite whose tests all skipped for want of a display failed the step as no result (0 ran), so lanes naming such suites had to wait for a display worker. Now such a suite reads skipped (needs a display) with a ::notice and does not fail the step; the lane summary reports N of M suites passed; K skipped (needs a display, not gating).
- A step still fails if it asked for a display (
CMUX_TEST_REQUIRE_GUI=1or the cmux-ci--displayopt-in, which setsCMUX_CI_DISPLAY_ROUTED=1); any other zero-ran suite staysno result. cmux-next.ymlno longer setsCMUX_TEST_REQUIRE_GUIonpull_requestruns of swift-test, daemon-test, and generated-files, so PR display suites skip and a lost console session never fails a PR job. Pushes and nightlies keep it as advisory coverage.- Tests updated to cover the new skip and the still-failing no-result cases.