Skip to content

inbox: field notes on a testable retry loop, three mxpatch lookups that miss, and the macOS + Mendix 10 mxbuild Docker shim - #533

Closed
saingge wants to merge 1 commit into
MendixMau:masterfrom
saingge:contrib/inbox-field-items
Closed

saingge wants to merge 1 commit into
MendixMau:masterfrom
saingge:contrib/inbox-field-items

Conversation

@saingge

@saingge saingge commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Branch: contrib/inbox-field-items, one commit (fc054c8) on origin/master 393d253.

PR body (Inbox lane: contrib/inbox/ files only)

Three items, one idea each, from a Mendix 10.24 app on mxcli v0.27.0. Each claim was re-run on 2026-10-21 on a synthetic module or on the toolkit's own fixture model, so nothing depends on the field app.

  1. contrib/inbox/2026-10-21-testable-retry-loop-shape.md (582 words, skill-draft). "Retry an external call up to N times" as a loop with no return inside: lints clean (a while true with return inside gives MDL-FLOW01 once per return), mx check 0 errors, and its decision flow tests without the call. Master has nothing on retry loops (git grep -i retry -- skills contrib checked; the nearest section is "Per-row isolation in a loop" in learned-microflow-patterns.md).
  2. contrib/inbox/2026-10-21-mxpatch-three-lookups-that-miss.md (519 words, learning). An entity's $Type is DomainModels$EntityImpl; a domain-model unit has no Name (so find_unit and the CLI's get/set can't select it); a flow's own Documentation is on the unit root, which find_element skips (project-bin/mxpatch.py:181). Master has EntityImpl only in an archived bug log.
  3. contrib/inbox/2026-10-21-macos-mendix10-mxbuild-docker-shim.md (587 words, learning). On macOS with Mendix 10 there is no native mx/mxbuild, so the gate needs a Docker shim at MXBUILD_PATH. Gives the shim's contract in generic terms, and that bin/doctor.sh's probe_runs (lines 145-166) reads a shim that exits 3 on --version/--help as "cannot run". Master says "Docker is the only route" (skills/mpr-corruption-and-sp-load-errors.md:61) but has no contract and no probe note. Relates to Local lane: no single 'what runs where' answer (MxBuild/runtime/DB/Playwright, Docker or not); doctor-triage says the ~/.mxcli/mxbuild cache is Linux-only but it holds a working Mach-O arm64 build on macOS #525, which is about doctor-triage's "Linux only" row: item 3 adds that this is true for Mendix 10 on a Mac and (per Local lane: no single 'what runs where' answer (MxBuild/runtime/DB/Playwright, Docker or not); doctor-triage says the ~/.mxcli/mxbuild cache is Linux-only but it holds a working Mach-O arm64 build on macOS #525 and a local file check) not for the 11 builds.
  • No client data: no client/vendor/person names, codenames, internal hosts, real local paths

Verification

  • bin/check-no-client-data.sh: "no client data detected in 1151 tracked files".
  • LEAKGUARD_BASE=origin/master bin/check-no-client-data.sh: new capitalised words HandleOutcome MaxRetries RetryState Silicon, all generic (synthetic identifiers; "Apple Silicon").
  • bin/check-pr-discipline.sh: clean. git diff --stat origin/master...HEAD | tail -1: 3 files changed, 218 insertions(+).
  • Item 1, on a copy of a 10.24.18 app with a synthetic Shop module (mxcli v0.27.0): mxcli check passed; exec created the flows; mxcli lint had no hit on the Shop flows; the while true-with-return variant gave 2 MDL-FLOW01 hits; mx check through the Docker shim: "The app contains: 0 errors." (52 s, exit 0, both versions present). mx-test-docker-style run of 5 tests: "5 passed, 0 failed, 0 skipped", exit 0. The same tests with one expectation flipped: "FAIL h2 ... expected $State/Attempt = 2, actual: 1", "4 passed, 1 failed", exit 1. The CE0104 statement is from check passes a statement that can never run (after return, or after a while true with no break), and mx check then fails with CE0104 / CE0105 / CE0709 mendixlabs/mxcli#1491 (read with gh issue view), not re-run. The "68 of 68" in the front matter is the field app's own count.
  • Item 2: fixture model rebuilt with executescript from tests/wave2/fixtures/mxpatch/model/TestApp.mpr.sql plus mprcontents, python3 -I. find_element(doc, "Car", "DomainModels$Entity") raised NotFound; with DomainModels$EntityImpl it found Car, VCar and ApprovalContext. The domain-model unit's name is None; find_unit("DomainModels$DomainModel", "MyFirstModule") raised NotFound; mxpatch.py find printed MyFirstModule.None; get --type DomainModels$DomainModel --key Documentation printed "mxpatch: --type and --name are required". Selecting by module_of then set_value(car, "Documentation", ...) gave changed and a dry-run line. find_element(u.doc, "<microflow name>") raised NotFound for each microflow; mxpatch.py set ... --key Documentation with no --element printed "Documentation: '' -> 'Does X.'" (dry run). mxpatch.py verify: "0 mismatch(es), 0 missing file(s), 0 orphan file(s)." Not applied to a model; not opened in Studio Pro.
  • Item 3: file on this Mac: the 10.24.18 cached mxbuild is "ELF 64-bit LSB pie executable, ARM aarch64"; the Studio Pro 10.24.18 bundle's Contents/modeler has 502 files and none named mx or mxbuild; the Studio Pro 11.12.4 bundle has mx and mxbuild as "Mach-O 64-bit executable arm64". The shim run is under item 1. probe_runs was extracted from bin/doctor.sh and run on two stubs: a stub that exits 3 without an .mpr returned exit 3; one that answers --version with exit 0 returned exit 0 (how=--version). The mxcli test --local darwin error text and the 110-of-110 field test run come from the project's bug log, not re-run today. Not run: the toolkit's gate on Mendix 11 on a Mac.

…at miss, and the macOS + Mendix 10 mxbuild Docker shim

Three Lane 1 items from a Mendix 10.24 app on mxcli v0.27.0. Each claim was
re-run on a synthetic module or the toolkit's own fixture model.
@MendixMau

Copy link
Copy Markdown
Owner

Thanks @saingge! Independent review: MERGE. We moved your commit unchanged, with your authorship, into #558, so CI runs without fork approval and we can handle CHANGELOG conflicts. This PR closes when #558 merges; the merge commit carries a Co-authored-by line for you.


Generated by Claude Code

MendixMau added a commit that referenced this pull request Oct 22, 2026
…s, and the macOS mxbuild Docker shim (#558, from #533)

Three Lane 1 inbox items from a Mendix 10.24 app on mxcli v0.27.0, each re-run on a synthetic module or the toolkit's fixture model. Unreviewed inbox content; nothing cites it until triage promotes it. Contributed by @saingge in #533.

Review: MERGE — inbox lane; anonymised, no client names or real paths. Security review: safe, descriptive text only.

Co-authored-by: saingge <262679532+saingge@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
@MendixMau MendixMau closed this Oct 22, 2026
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.

2 participants