Repository navigation
fix(ci): run the harness from a snapshot so a skill that syncs harness-adapter cannot break its own run - #1180
Merged
Merged
Conversation
…s-adapter cannot break its own run
… under the size guard
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
aeon-update on aeon-agent went red on 2026-10-05 (run https://github.com/aaronjmars/aeon-agent/actions/runs/37300267512):
bash reads a script as it executes it. aeon-update syncs upstream files into the workspace while the skill runs, and that sync changed
harness-adapter/run-harness(531f575..1a7f07e touched it). When the agent exited, the runningrun-harness(and the running adapter) kept reading a file that had changed under them and hit a parse error. The gateway cascade read that as a provider failure and re-ran the whole skill on the next provider, which also failed. The sync PR was still opened, but the run is red and the skill ran twice.Fix
New
scripts/harness-adapter-snapshot.shcopiesharness-adapter/to$HOME/.aeon-run/harness-adapterright before the run and prints the copy'srun-harness; aeon.yml calls it asRH=$(bash scripts/harness-adapter-snapshot.sh). Nothing inharness-adapter/refers to paths outside its own folder, so the copy behaves the same. The logic lives in a script because the Run step is close to GitHub's 21000-characterrun:limit (test_workflow_harness_choices.shguards at 20500); the step is now 20331, 6 under main.$HOMEand not$RUNNER_TEMPor/tmp: those are writable inside the read-only bwrap sandbox, and the unsandboxed scorer step runs this same copy.$HOMEitself stays read-only there (only~/.claude,~/.cache,~/.npmand the other harness state dirs are writable).Checks
scripts/lint-shell.shOK.scripts/tests/test_workflow_harness_choices.sh: passes (Run step 20331 characters).scripts/tests/test_dry_run_dispatch.sh: 38 passed.scripts/tests/test_readonly_notify.sh: all pass.