Repository navigation
Conversation
… refresh The CLAUDE.md duplicate-routing check looked up the "mxcli-project-toolkit Integration" heading with an unguarded grep | head | cut under set -euo pipefail. A CLAUDE.md that cites query-the-model.md or learned-mdl-preflight.md without that heading (every mxcli init v0.25 CLAUDE.md) made grep exit 1, and errexit ended the whole sync there: no bin/ crash-net refresh, no tests/e2e install, no lint-rule restore, no message. Introduced by 9a0350b (2026-09-18). Guard it with || true, and ledger_row_prefix too. New fixture tests/wave2/test-sync-dup-heading-exit.sh: 6/6 on this script, 4 of 6 fail on the pre-fix one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MpdPDrT1dsCR54JrgWmNso
… fixture The fixture header named consuming projects by client name; the public toolkit cites field runs without naming clients. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
MendixMau
added a commit
that referenced
this pull request
Oct 8, 2026
Squash of integration/2026-10-08, which merges: - #225 perf(ui-loop): test-stack-up.sh recognises a live mxcli run --local - #231 fix(sync): sync-project.sh no longer exits 1 silently before its bin/ refresh - #242 fix(init): local by default, no Dev Container - #243 docs(lint): process/lint-backlog.md, the lint rollout plan - #247 new(lint): the lint gate keeps a ledger - #249 learn(test): skills/e2e-locators-that-lie.md - #250 learn(skills): unhappy-path-testing.md - #251 fix(testing-shape): mxcli test --local shares the deploy directory (#230) - #252 fix(obligations): LOOK staleness reads the newest VALID AT stamp (#155) - #253 docs(lint): quality-source review, Batch 4 backlog rows and skill additions - #254 fix(lint): CONV020 works out of the box, page navigation counts as feedback (#229, #245) - #255 fix(e2e): journey-runner rung 2 runs for a negative-only span claim (#150) - #256 fix(gates): Stage 6 Surface, source-sufficiency title, ${JOURNEY_DIR} manifest token (#233, #234, #235) Verified on the branch: tests/run-tests.sh 33/0, tests/test-lint-delivery.sh ALL GREEN, tests/wave2 73/75 (two environmental), render-routing --check, check-scripts, check-portability, leak guard, check-no-private-citations, check-pr-discipline all clean; scaffold smoke run without crashes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
Owner
Author
|
Merged into master via integration PR #258 (squash 9dd9be4), on the maintainer's approval. Closing this PR; its branch is part of that squash. Generated by Claude Code |
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.
Fixes #227.
Direct lane
What changed and why (one paragraph):
sync-project.shruns underset -euo pipefail. Its CLAUDE.md duplicate-routing check (section 3) found the "mxcli-project-toolkit Integration" heading with an unguardedgrep -n … | head -1 | cut -d: -f1inside a command substitution. A CLAUDE.md that citesskills/query-the-model.mdorskills/learned-mdl-preflight.mdwithout that heading is every CLAUDE.md that mxcli init v0.25 writes. On such a file, grep exits 1, pipefail makes that the pipeline's status, and errexit ends the whole sync with no message. Nothing after it ran: the crash-netbin/refresh (#224), thetests/e2e/install, the lint-rule restore, the script smoke test or the summary. The bug came in with 9a0350b (2026-09-18).The change:
|| trueinside that substitution. The existing-ntest already handles the empty result, and the warning still fires.ledger_row_prefixthe same guard. Its two callers only reach it after a matching grep, so it cannot fail today, but it was the only other unguarded grep pipeline whose status could reach errexit.I checked the other
greps in the script. They are in conditions,grep -q, or already|| true.Field evidence:
Three consuming projects (TramiusECI, TramiusSCR, TramiusSVC) on toolkit 69b223c, 2026-10-07:
Would rewrite: CLAUDE.md Communication Style …, then exit 1.bash -xended at+ _dup_from_line=.Would refresh: bin/...lines that had been skipped silently, and the real run applied exactly those.Reproduced on a fresh
init-project.shscaffold for this PR. The output is quoted in the test tier below.bin/check-no-client-data.shwith the local denylist: clean, 743 files)tests/wave2/test-sync-dup-heading-exit.sh, which builds its projects with the realinit-project.sh.git show HEAD~1:bin/sync-project.sh): 2 passed, 4 failed (T1 exit 1, T2 no bin/ step, T3 no summary, T4 no warning).test-sync-past-stock.sh: 22 passed, 0 failed.test-bug12-sync.sh: 54 passed, 6 failed on this branch, against 47 passed, 13 failed on unmodified master (69b223c, same machine). The 7 it fixes are the existing bin/ crash-net assertions: missing script installed, exec bit repaired, drift reported,--upgrade-bin, backup,--dry-runreporting, and--strictexit 3. So this fixture already caught the bug on master.Rewrote: CLAUDE.md Communication Stylerewrite on a fresh v0.25 scaffold, and frominstall-manifest.shwarning aboutcoverage-check-all.shandts-sync.shbeing in neither list.bash -nclean, andbin/check-pr-discipline.shclean.CHANGELOG.mdline appended, creditedNot changed here, but worth noting: the warning text still says "its 'mxcli-project-toolkit Integration' section (~N words, heading to EOF)" when there is no such heading. In that case N is the whole file's word count.
Also seen on master, not in this PR:
CHANGELOG.mdlines 20 and 27 are leftover merge-conflict residue (perf/faster-ui-loop,master).🤖 Generated with Claude Code
https://claude.ai/code/session_01MpdPDrT1dsCR54JrgWmNso