fix: reject stale mncs-language toolchains in the mncs-experiments Forge check - #15
Conversation
Discovery now probes a candidate binary with a Profile 0.5 bare-name match fixture and skips toolchains that predate the upstream parser fix instead of failing every module with confusing MNP133 cascades. Explicit MNCS_LANGUAGE_ROOT remains the primary override.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 32b6bc41e3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| document = json.loads(result.stdout or "{}") | ||
| return not document.get("diagnostics") |
There was a problem hiding this comment.
Require a successful probe process
When a candidate exits nonzero without stdout—for example, because this older binary lacks source-study or cannot start—result.stdout or "{}" turns that failure into an empty document, and the missing diagnostics field makes the probe return true. Discovery therefore accepts exactly the stale or wrong toolchain this check is meant to reject and proceeds to misleading experiment failures; require a zero return code and recognizable successful output before accepting it.
Useful? React with 👍 / 👎.
| # Stale or wrong toolchain: keep searching rather than fail. | ||
| continue |
There was a problem hiding this comment.
Rebuild a rejected artifact before skipping the checkout
When the sibling checkout's source has been updated past the parser fix but target/debug/mncs was built before that update, the probe rejects the old artifact and this continue bypasses the cargo build path immediately below. The Forge check consequently reports BLOCKED even though the checkout contains compatible source that _mncs_cli() promises to build; attempt the build after a failed probe and then probe the rebuilt binary.
Useful? React with 👍 / 👎.
Auto-discovery could accept an outdated sibling
mncsbinary, failing every module with confusing MNP133 cascades. Discovery now probes candidates with a Profile 0.5 bare-name-match fixture and skips pre-fix toolchains;MNCS_LANGUAGE_ROOTremains the explicit override.