fix(exec.sh): delta gate keys errors on code + message + location, counted - #178
Merged
Merged
Conversation
…unted The delta gate compared post-exec errors to the pre-flight baseline by message text alone. On a real 22-error baseline, 20 errors share two "Could not find widget" messages and every CE0117 reads "Error(s) in expression.", so a script adding another CE0117 in a new microflow was judged IDENTICAL and kept. Each Error is now a short hash of errorCode, message and every location's module / document / element, and is_subset_of is a multiset test. Names, not GUIDs, so a CREATE OR REPLACE that leaves a pre-existing error in place still reads as pre-existing; a rename reads as new and restores. Field run on a scratch copy of a greenfield PoC model (Mendix 11.12.1, 22-error baseline), master vs fix, four scripts: identical verdicts on fix-one, fix-one-add-new and replace-unchanged-plus-harmless; the add-same-message script is KEPT on master and RESTORED on the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
MendixMau
marked this pull request as ready for review
September 29, 2026 23:49
…nreleased lines) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
7 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.
What changed and why (one paragraph)
project-bin/exec.shkeeps a script's changes when the post-exec mxbuild errors are identical to, or a subset of, the pre-flight baseline. It compared errors by message text only. Real mxbuild output makes that key weak: on a 22-error baseline, 20 errors share two "Could not find widget" messages, and every CE0117 reads "Error(s) in expression.". So a script that added a new CE0117 in a new microflow was judged IDENTICAL and kept. Now each Error is a short hash of errorCode, message and every location's module / document / element, and the subset test counts occurrences. Names are used instead of element GUIDs so that a CREATE OR REPLACE which leaves a pre-existing error in place still reads as pre-existing. A rename reads as new and restores, which is the safe direction. The "Known limit" note in the header is removed.Field evidence
Scratch copy of a greenfield PoC model, Mendix 11.12.1, baseline 22 errors: CE0462 ×20, one CE0117, one CE0100. Master
project-binvs this branch, same scripts:Row 04 is the defect. In row 05 mxcli reported the microflow as unchanged, so GUID stability was checked separately with the key function against the captured errors JSON: re-minted GUIDs give an identical key set; an exact duplicate and a same-message error at a new place both read as new.
Checklist
--write-errorsoutput, not hand-written; bash 3.2 safe, no arrays; Python via the existing$PYprobe🤖 Generated with Claude Code
https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
Generated by Claude Code