test: run the base Repair step with its real base-autofix-repair.sh

Closed
TE
16d ago
+9-0

Fixes the Companion workflows red in cmux-next checks on feat-cmux-next.

What broke

#23315 (95a43f86c9ae) moved the base autofix's Repair step into scripts/cmux-next/base-autofix-repair.sh. The step now calls that script by relative path, and the script reads the Mac exports from EXPORTS_DIR. tests/test_cmux_next_pr_autofix_settings.py runs that step in a scratch tree that holds only a base-autofix.sh stub and sets no EXPORTS_DIR. Its three SettingsOnlyArtifactLeavesTheActionFollowers base subtests (job='autofix') failed at repair_args, line 109:

AssertionError: 127 != 0 : bash: line 2: scripts/cmux-next/base-autofix-repair.sh: No such file or directory

The fix

The scratch tree now holds the real base-autofix-repair.sh next to the stub, and the test sets the step's EXPORTS_DIR ($RUNNER_TEMP/action-exports, as the workflow does). The base subtests now run the repair script itself, which had no other test. The PR-autofix subtests are unchanged.

The pre-commit hook also registered tests/test_crash_class_fast_gate.py (added unregistered by #23331) in tests/test-execution.toml. An unregistered test file is a base red of its own, and the hook adds it to every commit.

Changelog

none

Observed / Not run

  • Observed (base, CI): cmux-next checks at 5a721f661b fails Companion workflows with the three failures above.
  • Observed: prepush-gate.py reports no new violations.
  • Not run locally: the test itself (no test runs on this Mac). The Companion workflows step of this PR's cmux-next checks runs it; its result is recorded below once it reports.

🤖 Generated with Claude Code
Agent session: cosmic-gray


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the Companion workflows test failures in cmux-next checks after #23315 moved the base autofix Repair step into scripts/cmux-next/base-autofix-repair.sh.

The settings-artifact test now runs the real repair script in its scratch tree (instead of a stub) and sets the step's EXPORTS_DIR, so the three base subtests no longer fail with exit 127. Also registers tests/test_crash_class_fast_gate.py in tests/test-execution.toml, which was previously added unregistered.