Skip to content

fix(dg2, obligations): DG2 column REPLACE is a whole-page re-emit; old-shots LOOK FAULT names its remedy (#356, #357) - #365

Closed
MendixMau wants to merge 2 commits into
masterfrom
fix/dg2-replace-and-look-retake-message
Closed

MendixMau wants to merge 2 commits into
masterfrom
fix/dg2-replace-and-look-retake-message

Conversation

@MendixMau

@MendixMau MendixMau commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Direct lane

What changed and why (one paragraph):
#356: ALTER PAGE … REPLACE of an existing DataGrid 2 column with a new Attribute: passes check --references and then fails mxbuild ("An attribute is required when 'Show' is set to 'Attribute'"). The SET form is already refused by check. learned-dg2-patterns.md rule 1 now says "insert, replace or re-attribute" (the body already routed changed columns through CREATE OR REPLACE PAGE). learned-detection-gaps.md gets a row beside the BUG-96 row. bug-logs/mxcli-bugs.md gets BUG-DRAFT-dg2-replace-column-attribute-passes-check with the reporter's command and output, marked as an upstream candidate: check should reject an unbindable REPLACE column the way it rejects the SET form. learned-mdl-preflight.md gets a one-line gotcha pointer, not a STOP row. That file defines STOP rows as corruption or silent runtime failure. This defect is caught by mxbuild and auto-restored by exec.sh, which is exactly what the file's "gotchas" section is for. #357 change 1: after a partial re-take, the screenshots older than their section's VALID AT FAULT in bin/lib/obligation-check.sh now names the remedy the per-section mechanism (#155) already supports: "keep the old section and its original stamp (restore it if bumped); append an addendum (VALID AT: + PROOF-OF-LOOK for the re-shot pages)". module-review.md gains one sentence: stamp the model commit the shots were taken on, never a later commit that only adds the screenshots, because that commit postdates them. close-the-loop.md gets one routing row.

Review follow-up (second commit): the first wording said VALID AT: <current commit>. That was a trap: stamping the commit that adds the shots leaves the shots older than their stamp, so the FAULT stays. The remedy now names the model commit and tells agents who already bumped the original stamp to restore it. The message is also shorter.

Maintainer's call, not implemented: #357 change 2 (per-page staleness). It would judge each PROOF-OF-LOOK line against the last commit that touched that page's unit. That conflicts with the module-level expiry design in module-review.md ("A LOOK report expires when the module changes"), so it is a design decision, not a fix.

Closes #356. Addresses #357 change 1 only, so the issue stays open.

Field evidence: the reporter's field run (an Ollama connector app, existing-app mode, mxcli v0.26.0, Mendix 11.15.0, 2026-10-14), as described in #356 and #357. Not re-probed here. The message change is not field-run here (none yet).

🤖 Generated with Claude Code

https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw

…d-shots LOOK FAULT names its remedy (#356, #357)

#356: ALTER PAGE REPLACE of a DataGrid 2 column with a new Attribute:
passes check --references and fails mxbuild (v0.26.0, Mendix 11.15.0).
learned-dg2-patterns.md rule 1 now covers replace/re-attribute; new
detection-gaps row; one-line gotcha pointer in learned-mdl-preflight.md;
BUG-DRAFT-dg2-replace-column-attribute-passes-check (upstream candidate).

#357 change 1: the "screenshots older than their section's VALID AT"
FAULT now names the addendum remedy; close-the-loop.md routes re-shot
pages to an addendum; test-obligation-valid-at.sh T5 asserts the text.
Per-page staleness (change 2) is left to the maintainer.

Closes #356

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
… bumped stamp (#365 review)

Review of #365: "VALID AT: <current commit>" set a trap. Stamping the
commit that adds the shots makes them older than their own stamp, so the
FAULT stays. The message now says to stamp the model commit the shots
were taken on and to restore a bumped original stamp, and is shorter
(remedy ~200 chars). Detail is in module-review.md (one sentence) and the
close-the-loop.md row. test-obligation-valid-at.sh T9 stamps a
shots-only commit and asserts the FAULT stays, with a PASS control on the
model commit; T5 matches the new text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
MendixMau pushed a commit that referenced this pull request Oct 14, 2026
… re-emit; old-shots LOOK FAULT names its remedy (#356, #357)

Review: independent review MERGE-AFTER-FIX — bug-log entry verbatim to #356, gotcha (not STOP row) correct per the preflight criteria; FAULT remedy said "VALID AT: <current commit>", which keeps the FAULT when an agent stamps the shots-only commit, and was ~600 chars → remedy names the model commit the shots were taken on, restore a bumped stamp, ~200 chars, new T9 proves the trap, in ad749d3; confirmation MERGE: probe register goes FAULT → PASS when followed literally. Fixtures: valid-at 12/0, fidelity 6/0, final-look 17/0, look-ledger 11/0, bug03-gates 31/0. Closes #356; #357 change 1 (change 2, per-page staleness, left to the maintainer). Credit joshuamoesa.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
MendixMau added a commit that referenced this pull request Oct 15, 2026
…journey controls, fixes) (#385)

Lands #340 #363 #362 #355 #370 #368 #364 #365 #366 #372 #367 #371 #376 #369 #373 #377 #378 #380.

Review: each constituent PR independently reviewed by a fresh agent that did not write it; merged into integration/2026-10-15 only on a MERGE verdict with green CI (per-PR Review lines in the integration merge commits). After-fix rounds: #373 (env-var cap, rename/skip-loops freshness), #377 (inline URI fallback), #378 (full-pack double count, slice content). Stub diet (#369/#378/#380) behaviour A/B, 5 reps x 2 drafting tasks + 5 retrieval probes x 3 reps: trimmed context no worse than master on every scored metric (planted STOP refused 20/20, parse failures page 2/5 vs 3/5, probes 15/15); mdl Stage 5 56,236 -> 30,647 words, baseline 75,028 -> 73,233. Full suites on c9bc073: run-tests 33/0, wave2 111 fixtures 0 failing. Field evidence: none yet for the instruments (#355 warn-only, #373/#377 read-only).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
@MendixMau

Copy link
Copy Markdown
Owner Author

Landed on master in #385 (squash 868b3cb), after its own independent review on the night integration branch. Closing this PR.


Generated by Claude Code

@MendixMau MendixMau closed this Oct 15, 2026
@MendixMau
MendixMau deleted the fix/dg2-replace-and-look-retake-message branch October 15, 2026 10:46
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.

[learning] ALTER PAGE cannot change a DataGrid 2 column Attribute — SET is rejected by check, REPLACE passes check and fails mxbuild

2 participants