guard: freshness-block message gives the exact remediation syntax (3.8.6)#153
Merged
Merged
Conversation
… (3.8.6) GIT_FRESHNESS_MESSAGE was a riddle; agents flailed for many turns. It now spells out the working form: a literal-path fetch chained in the SAME command as the write (git -C "/abs" fetch --all --prune && git -C "/abs" commit ...), plus the silent-fail gotchas ($VAR path not resolved; pipe/redirect in the fetch; exit-nonzero fetch when --all hits a keyless mirror -> use fetch origin --prune). Message text only, no behavior change. +CHANGELOG [3.8.6], version bump. 756 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CryptoJones
added a commit
that referenced
this pull request
Jul 7, 2026
…uff E501) (#154) The 3.8.6 message (#153) exceeded the 100-col limit on 5 string lines, reddening ci (ruff check .). Rewrapped the literals — identical runtime text, each source line <=100. ruff clean, 134 guard tests pass. This is the 'run everything CI runs (ruff + pytest), not just tests' rule I skipped before #153. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.
What
Improves the guard's
GIT_FRESHNESS_MESSAGE(therepo-work-fresh-baseblock) to hand the agent the exact working remediation instead of a riddle.The old message — "run
git fetch --all --prune… then inspect branch status" — is technically true but leaves agents guessing. In practice they chain the fetch into the same command but with a$VARpath (the static parser doesn't resolve it), or run a fetch that exits non-zero (--allhitting a keyless Codeberg mirror, which doesn't register), and burn many turns flailing. (This PR was born from exactly that — an hour lost committing to a sibling repo.)The new message spells out the working form verbatim: a literal-path fetch chained in the same command as the write (
git -C "/abs" fetch --all --prune && git -C "/abs" <write>), and names the three silent-failure gotchas:$VARpath not resolved, pipe/redirect in the fetch part, and a non-zero-exit fetch when--allhits a keyless mirror → usefetch origin --prune.Changes
src/omind/guard.py—GIT_FRESHNESS_MESSAGEtext only (no behavior change).CHANGELOG.md—[3.8.6]entry.pyproject.toml,src/omind/__init__.py).Tests
Full suite green — 756 passed, 1 skipped. No test pins the message text.
Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/