Repository navigation
gate-check: half the process starts, closeout reuses the gate's verdicts (#583) - #589
Merged
Merged
Conversation
) --closeout replays the preceding stage query's evaluation from a keyed cache; stage queries skip later-stage artifact/obligation rows; register parsed once; toolkit fetch at most once per 15 min; pure-bash trims. Field run: ab-581/base copy, Stage 3 - closeout 820 -> 127 process starts (3.6 s -> 1.5 s), gate-check 3 560 -> 275, no-stage 626 -> 338; closeout and no-stage output byte-identical, stage output differs only in skipped rows. Reported by OlafFede (#583). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
…ot only mtimes (#589 review) An overwrite that keeps an old mtime (cp -p, rsync -t, tar x, unzip, touch -d) escaped the find -newer freshness test: a signed triage.md copied over a FAIL one still replayed the cached Stage 0 FAIL. The cache now stores a cksum signature of the project files (one find|sort|xargs cksum|cksum pipeline; skips .git, node_modules, .mxtk, mprcontents, deployment, *.mpr, files >1 MB) and any difference, or an uncomputable signature, re-evaluates. Adds tests/wave2/test-gate-cache.sh and MXTK_GATE_CACHE_TRACE=1. Field run: copy of /home/user/ab-581/base (197 MB, 633 hashed files), Stage 3: signature 28 ms; --closeout cache hit 1464 ms before, 1498 ms after; full evaluation 2567-2786 ms. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
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.
#583: Stage 3's gate-check plus closeout took about 12 min on a 1-module, 7-page slice. Profiling on Linux showed no slow step. The cost is about 2,000 small process starts per run; at about 100 ms each on Windows, that comes to minutes.
What changes
--closeoutreuses the verdicts of the gate-check that just ran. The cache is keyed on stage, flags, environment, the day and the project HEAD. It is valid for 30 min, and only while no project or toolkit file is newer than the run. Any doubt re-evaluates.MXTK_GATE_CACHE_TTL_MIN=0turns it off.MXTK_FETCH_TTL_MIN).Evidence
Copy of the purchase-requests base project, Stage 3:
Closeout and no-stage output are byte-identical, after masking dates and paths. Stage verdict lines and exit codes are unchanged.
Fixtures: all pass.
test-bug12-syncfails identically on master.Risk
touch -tanddatecalls have GNU/BSD fallbacks.Generated by Claude Code