Skip to content

fix(exec.sh): restore names only the errors the script added - #179

Merged
MendixMau merged 1 commit into
masterfrom
fix/exec-restore-names-new-errors
Sep 30, 2026
Merged

MendixMau merged 1 commit into
masterfrom
fix/exec-restore-names-new-errors

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

What changed and why (one paragraph)

Follow-up to #178. When exec.sh undid a script on a model that already had errors, it printed every error on the model with the new one unmarked, then said the errors were "PRE-EXISTING … This script is NOT the cause. Nothing will exec until that is cleared" and logged "blocked". Both statements were false: the script had added the error, and the delta gate keeps any later script that adds nothing new. Now the headline says how many errors this script added (and how many were already there), the new errors are listed in full, the old ones are summarised one line per code, and the attribution and build log say the script was rolled back for its own errors. The new/old split uses the gate's own error key (ERRKEY_PY, shared by err_set and the new err_report), so the verdict and the report cannot disagree. With no measured baseline (SKIP_BASELINE=1) the output is unchanged.

Field evidence

Scratch copy of a greenfield PoC project (Mendix 11.x) with 22 known errors (CE0462 x20, CE0117, CE0100). Real .mpr untouched.

Script Before (master) After
fixes one error kept kept, same message
fixes one, adds a new CE0109 "22 error(s) found", all 22 listed, then "PRE-EXISTING … NOT the cause … Nothing will exec", log "blocked" "this script added 1 new error(s) [CE0109] (22 in total, 21 were already there) — undoing it"; NEW lists CE0109 with its location; log "1 new error(s): CE0109 — script rolled back; 22 pre-existing remain"
adds a CE0117 with the same message as an existing one same false attribution same shape, CE0117 at the new microflow with expression detail

err_set output checked identical to #178's on the real error capture.

Checklist

  • No client data (leak guard + denylist grep clean)
  • Size cap
  • Test tier: field run on a scratch copy; tests/wave2/test-bug07-08.sh uses SKIP_BASELINE=1, whose path is unchanged
  • Instrument rules: real mxbuild output, run against a real model
  • Routing row: n/a
  • CHANGELOG line
  • Bug entries: n/a

🤖 Generated with Claude Code

https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw


Generated by Claude Code

On a model that already had errors, the restore listed every error with the
new one unmarked, then said the errors were pre-existing, that the script was
not the cause, and that nothing would exec until they were cleared. Both false.
Now the headline counts the new errors, the report lists them first in full
and summarises the old ones, and the attribution and build log say the script
was rolled back for its own errors. New/old uses the gate's own error key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
@MendixMau
MendixMau marked this pull request as ready for review September 30, 2026 00:16
@MendixMau
MendixMau merged commit 884151e into master Sep 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant