Skip to content

glaeda-cmux-runner-hook: class jobs by workflow file + job id where ids collide - #1238

Merged
teamleaderleo merged 2 commits into
mainfrom
hook-workflow-job-class
Sep 25, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
hook-workflow-job-class

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Why

The job-start hook classes a job by GITHUB_JOB alone, and an unknown id counts as a compile pinned to the canonical root. cmux-tui.yml's macOS lint / test / build (about 117 runs a week; see manaflow-ai/cmux#14411) collide with test-e2e's build / test root jobs, so they hold a root and the persistent-DerivedData token for a cargo build.

What

  • WORKFLOW_JOB_CLASSES keyed on (workflow file, job id), checked before JOB_CLASSES. The file comes from GITHUB_WORKFLOW_REF, which names the caller workflow for reusable ones (cmux-tui's build-artifacts build). Missing or malformed: falls back to the id-only rule.
  • cmux-tui lint, test, build: isolated (cargo into the workspace target; no GUI, root, persistent DerivedData or simulator).
  • app-host-test-rerun rerun deliberately stays the default (compile, pinned): it hard-codes /private/tmp/cmux-ci, deletes compile admission's DerivedData and never takes a root. Giving it a better class needs the cmux workflow to honor CMUX_CI_CANONICAL_ROOT and take its root first. It routes to Blacksmith today anyway.
  • release-build and cdp-browser-smoke stay the default until audited.

Tests

New test_job_class_keys_on_workflow_file_and_job_id; full suite 115 OK.

🤖 Generated with Claude Code

teamleaderleo and others added 2 commits September 25, 2026 03:38
… ids collide

cmux-tui.yml's macOS lint, test and build (about 117 runs a week) share job ids with
test-e2e's root jobs, so the hook costed them as unknown compiles pinned to the canonical
root. WORKFLOW_JOB_CLASSES, read from GITHUB_WORKFLOW_REF's file, is checked first:
cmux-tui's three are isolated, app-host-test-rerun's rerun is product. Everything else is
unchanged; release-build stays the safe default until its paths are audited.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ned default

It hard-codes /private/tmp/cmux-ci, deletes compile admission's DerivedData and never
takes a root, so product (which drops the root token when roots > 1) would let it clobber
root 1. Keep compile, pinned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo merged commit 75f0cff into main Sep 25, 2026
4 checks passed
@teamleaderleo
teamleaderleo deleted the hook-workflow-job-class branch September 25, 2026 07:45
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