Skip to content

Sync ako/mxcli: Windows junction fallback, drop reflection-data references - #1366

Merged
ako merged 15 commits into
mendixlabs:mainfrom
ako:main
Oct 9, 2026
Merged

ako merged 15 commits into
mendixlabs:mainfrom
ako:main

Conversation

@ako

@ako ako commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Syncs ako/mxcli:main into mendixlabs/mxcli:main: 2 commits since #1359, landed in the fork through ako#1075.

Windows

Docs

  • References to the closed-source reflection-data library are removed. Docs pointed contributors at a reference/ path nobody can populate. Living docs and skills now point at the vendored metamodel types in modelsdk/gen and at Studio Pro-authored documents, which win on disagreement.
    • cmd/codegen -input no longer defaults to the library's path and is required. The CLAUDE.md codegen example used a nonexistent -reflection-dir flag.
    • At the maintainer's request, ADR-0008, one finding, the wiki sync log and gittree.txt are reworded too (wording only)

stagknee and others added 15 commits October 9, 2026 12:26
…akes (closes mendixlabs#1284)

Signal(0) is unsupported on Windows (Go returns EWINDOWS for every signal but
Kill), so every pid read as dead and `mxcli test --attach` always refused a
live app. internal/procalive.Alive uses the OpenProcess/WaitForSingleObject
check docker already used; both handshake readers and docker's Windows
processAlive now call it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…live

docker.PidAlive, which `run stop` and `run status` use and which arrived
after the handshake fix above was written, called a pid alive on Windows
whenever os.FindProcess could open it. Windows keeps an exited process
openable for as long as anyone holds a handle to it (its parent,
typically), so a run that had shut down read as alive: `run stop` waited
out its grace period, killed a process that was gone, and still printed
"failed: 1 process(es) of pid N's run are still alive". Same class as
mendixlabs#1284; PidAlive now uses procalive.Alive, which asks
whether the process has terminated. macOS keeps the same Signal(0) check
it had; Linux has its own /proc-based PidAlive and is unchanged.
…s liveness fixes

mdl-examples/bug-tests/1284-test-attach-windows.test.mdl is the end-to-end check: run --local --test-endpoint, then test --attach, then run stop. Verified on Windows 11 / Mendix 11.13.0: unfixed main refuses the live pid, this branch passes the test and stops the run cleanly.
…shake-liveness

# Conflicts:
#	CHANGELOG.md
os.UserHomeDir reads USERPROFILE on Windows, so a test that only called
t.Setenv("HOME", dir) used the developer's real ~/.mxcli there. Across the
13 test files that did, a run left a fixture PAT, fake mxbuild/runtime
caches and a catalog cache in it, and later runs failed on the credential
an earlier run left behind.

testutil.SetHome sets both HOME and USERPROFILE and replaces every bare
override (and the two per-package helpers that only handled one OS each).
TestNoBareHomeSetenv fails for any test file that calls Setenv("HOME", ...)
directly.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
In-process commands reach diaglog.Init, which logged session lines into, and
pruned old files from, the real ~/.mxcli/logs on every OS. A package TestMain
now points MXCLI_LOG_DIR (diaglog's own test hook) at a temp dir unless it is
already set. Follow-up to mendixlabs#1273 / mendixlabs#1256.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
)

Turning page item 'Work' into sub-menu 'Work' paired the two by caption,
and keepStoredMenuAction's sub-menu branch carried the page item's
Forms$FormAction onto the sub-menu ("MDL cannot express it"). mx check then
failed with CE0548 "Items with subitems cannot have an action themselves."
A sub-menu cannot hold an action, so nothing stored is kept on it; the
navigation and menu-document writers share the decision.

Measured on 11.14.0 with the committed bug-test script: unfixed build ->
docker check CE0548; fixed -> 0 errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JAkNou7mZAV7LRE6kGwzDs
…shake-liveness

# Conflicts:
#	CHANGELOG.md
fix: detect a live process on Windows in test --attach, the dev-loop handshake and run stop (mendixlabs#1284)
docs(changelog): run --local --watch applies a domain model change on Windows (mendixlabs#1342)
test: isolate the home directory on Windows too, and keep cmd/mxcli tests out of ~/.mxcli/logs (mendixlabs#1256)
fix(navigation): a sub-menu never keeps a stored action (mendixlabs#1341)
@ako
ako merged commit 694344f into mendixlabs:main Oct 9, 2026
13 checks 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.

3 participants