Skip to content

cmux-runner-hook: a locked console skips the frame-pacing bench instead of failing it - #1384

Merged
teamleaderleo merged 2 commits into
mainfrom
glaeda-locked-skip
Oct 1, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
glaeda-locked-skip

Conversation

@teamleaderleo

Copy link
Copy Markdown
Owner

Summary

When the console session is locked, the cmux-next frame-pacing bench job (cmux#16511) is now admitted and skips its console steps, where it used to be refused and fail.

  • The bench runs on the side-lane mini or nowhere and has no rescue workflow. So since cmux-runner-hook: classify cmux-next frame-pacing's build and bench #1383 made it gui-step, admission's console refusal turned a locked mini into a red nightly.
  • The new CONSOLE_SKIPPERS set (("cmux-next-frame-pacing.yml", "bench")) lists console jobs that skip their own console steps when take-gui gives way. On a locked console, job-started admits such a job as light, with no gui token, and logs why.
  • Its take-gui --wait 900 step then gives way (exit 3, console: ... screen-locked). The workflow already maps that to taken=false and skips every console step with a notice, so the job ends green.
  • Every other console job (app-host-unit-tests, tests-build-and-lag, test-e2e test, anything on --gui-runner) is still refused, so cmux's rescue re-runs it elsewhere.
  • docs/CMUX_MINI_RUNNER.md and the hook docstring describe the exception.

The cmux workflow needs no change: its gui step already treats any take-gui exit other than 0 or 2 as a skip.

Red / green

python3 scripts/test-glaeda-cmux-runner.py HookTest.test_a_locked_console_leaves_the_frame_pacing_bench_to_skip_itself

  • Red at e8f30e6:
    AssertionError: 1 != 0 : glaeda-cmux-runner-hook: refused: console: the console session (cmux) is screen-locked, ...
    
  • Green at b3a17fc: Ran 1 test ... OK.

Locally, HookTest.test_a_locked_console_refuses_gui_jobs_before_taking_capacity, NoEmDashTest and ConsoleTest also pass. CI runs the full suite.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RYQHfug1ZVQDp4eWgwVUtD

teamleaderleo and others added 2 commits October 1, 2026 18:27
Fails today: admission refuses the bench (gui-step) on a locked console,
which fails the nightly since it has no other runner or rescue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYQHfug1ZVQDp4eWgwVUtD
The bench runs on the side-lane mini or not at all, so a console refusal
only failed the nightly. Admitted as light with no gui token, its take-gui
step gives way (exit 3) and the workflow skips the console steps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYQHfug1ZVQDp4eWgwVUtD
@teamleaderleo

Copy link
Copy Markdown
Owner Author

Subagent review at b3a17fc: APPROVE.

  • Only (cmux-next-frame-pacing.yml, bench) is exempt. Every other console job is still refused.
  • A light admission takes no gui token and no root, and take-gui re-checks the console and gives way (exit 3).
  • The workflow maps any status other than 0 or 2 to a skip.

Nits, none blocking:

  • take-gui can return 2 (no runner env) before its console check, so a broken runner on a locked console would count as taken.
  • job_meta still records the bench as gui-step.
  • No test covers a job named bench from another workflow.

@teamleaderleo
teamleaderleo merged commit 63b5493 into main Oct 1, 2026
14 checks passed
@teamleaderleo
teamleaderleo deleted the glaeda-locked-skip branch October 1, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant