Repository navigation
fix(aeon-update): move the sync's file work into scripts/aeon_update.py - #1258
Merged
Merged
Conversation
The skill spelled out compare, 3-way classify and apply as shell snippets (helper functions, per-file loops, redirects into files). Claude Code's permission layer refuses each of those shapes, so the model wrote its own classify script and ran it with bash, which is refused too. Two miroshark-aeon runs on 2026-10-21 ended green with nothing synced. scripts/aeon_update.py does that work in two allowed python3 calls: plan (tree diff, partition, 3-way classify, conflict diffs, pending conflicts) and apply (write, pack-registry check, eyebrow scan or fail-safe, glyphs, catalogs, validate-config, state file). Diffing the two upstream trees also removes the 300-file compare cap. The rest of the skill is now single commands. Tests in scripts/tests/test_aeon_update.py.
This was referenced Oct 21, 2026
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.
Why
aeon-update has synced nothing on miroshark-aeon since Claude Code 2.1.301 landed there (#1234, synced Oct 17). The skill described compare, classify and apply as shell snippets: helper functions, per-file loops, redirects into
/tmpfiles. The permission layer refuses each of those shapes. With 55 changed files and 45 held conflicts, the model wrote its own/tmp/classify.shand ran it withbash, which is refused too. Runs 39522579447 and 39618125223 both ended green (quality score 2) with no branch and no PR. aeon-agent got through the same day, so it depends on what the model happens to do. It is not a hard break.What changes
scripts/aeon_update.pydoes the file work in two calls (Bash(python3:*)is already in the write tier, soskill_mode.shis unchanged):plan --upstream --baseline --head: diffs upstream's two trees (no 300-file compare cap), partitions OPERATOR/OWNED, 3-way classifies withgit merge-file --diff3, applies the pack-registry unit rules, and writes a diff file for each conflict and operator path. It also recomputespending_conflicts, including on an in-sync run. It mutates nothing.apply, on theaeon-update/*branch:checksums.txt, in a scrubbed env. If that is not possible, the fail-safe carries upstream's lock entry or holds the skill.skills/aeon-update/SKILL.md: S4-S8 now call the script. S0-S3 and S9 are rewritten as single commands with<PLACEHOLDER>values, and files are written with Write/Edit. A note at the top lists the shell shapes that get refused.eyebrowlock.json: only aeon-update's entry is spliced (its finding moved from line 100 to 105).Verification
python3 scripts/tests/test_aeon_update.py(added to CI lane 1) uses real git repos. It covers every disposition, renames, exec bits, operator files, an enabled skill retired upstream, parse failures, the stale skill-packs copy, the eyebrow fail-safe (carry + hold), glyph carry, pending recompute, refusing to apply on main, in-sync and an unreachable baseline.plantook 7 s: 9 add, 35 update, 4 merge, 6 conflicts, 41 pending.applytook 5 s and downloaded eyebrow v0.5.6 and rescanned.eyebrow verify --cipassed on the result.Need help on this PR? Tag
@codesmith-botwith what you need.