Repository navigation
Conversation
…ce the catalog can miss graph-sweep's orphan caveat named only layout snippet calls, so a live flow read as "strong evidence of deadness". The orphan list now notes that a flow used only as a pluggable widget's datasource or action property may have no edge, and prints the one search that finds the page that holds it (it needs a REFRESH CATALOG FULL SOURCE catalog, which the note says). The same wording is fixed in review-report.js, and the QUAL004 row in lint-that-actually-runs.md goes from "likely misses" to what was observed, with the issue link. Observed on a Mendix 10.24 app with mxcli v0.27.0 (catalog from REFRESH CATALOG FULL): 5 flows used only as a Gallery's or a third-party widget's microflow datasource had 0 refs rows, "show references to" said "no references found", "describe page" printed each, and QUAL004 flagged each. A Gallery with a microflow datasource and no microflow onClick had its ref (15 of 15); with both, only the onClick ref (2 of 2). The two Data grid 2 microflow datasources in the app had theirs. Test: test-catalog-edge-guard.sh case 1 asserts the note; run against master's graph-sweep.sh at 393d253 it fails on both layouts (22 of 24), with the change it passes 24 of 24. The printed search was run on a copy of the app with a FULL SOURCE catalog and listed the page holding the flow; on a plain FULL catalog it finds nothing and mxcli says so.
Owner
|
Thanks @saingge! Independent review: MERGE. We moved your commit unchanged, with your authorship, into #556, so CI runs without fork approval and we can handle CHANGELOG conflicts. This PR closes when #556 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
…ce the catalog can miss (#556, from #530) graph-sweep's orphan list now notes that a flow used only as a pluggable widget's datasource or action property may have no catalog edge, and prints the search that finds its page (needs a REFRESH CATALOG FULL SOURCE catalog). Same wording in review-report.js; the QUAL004 row in lint-that-actually-runs.md records what was observed. Fixture test-catalog-edge-guard.sh 24/24. Contributed by @saingge in #530. Review: MERGE — echo-only note plus doc row; no mxcli call. Security review: safe. 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Branch
fix/graph-sweep-widget-refs, one commit (cb2ab46) on origin/master 393d253. Lane 3 (direct).What changed and why
graph-sweep's orphan caveat named only layout snippet calls. A flow used only as a pluggable widget's
datasource or action property can have no
refsedge either, so a live flow reads as "strong evidenceof deadness" and the rule's own advice ("Remove if unused") would delete it. Now:
mxcli search "<Module.Flow>"that finds the page holding a flow, with thecaveat that it needs a
REFRESH CATALOG FULL SOURCEcatalog (the sweep reads a FULL one, which has no page source)(
project-bin/graph-sweep.sh, with the comment above the query);project-tests/e2e/review-report.js(the orphan check detail) says the same;skills/lint-that-actually-runs.mdgoes from "the catalog likely misses thepluggable widget's ref" to what was observed, with the upstream link
(mendixlabs/mxcli#1513);
test-catalog-edge-guard.shcase 1 asserts the note.#1513 is the same defect class, but it was filed for a Data grid 2 on mxcli v0.26.0 ("not retested on
v0.27.0"). On v0.27.0 the Data grid 2 datasources in the app below did have a ref, and a Gallery's did
not in one situation. The text says so rather than saying #1513 is the Gallery case.
Impact
project-bin/graph-sweep.sh,project-tests/e2e/review-report.js,skills/lint-that-actually-runs.md,bug-logs/mxcli-bugs.md, one pending-issue draft, one fixture. No shared library, no new tool, no new artifact read.lint-that-actually-runsis an on-demand row.bin/render-routing.sh --checkoutput is identical on base 393d253 and head (Baseline: 75510 words, budget 80000).echolines.Field evidence
A Mendix 10.24 app, mxcli v0.27.0, catalog from
REFRESH CATALOG FULL, on a scratch copy (the realproject was not written):
refsrows,
show references toprinted "no references found",describe pageprinted the datasource, andQUAL004 flagged each.
onClick. The 2with none have both a microflow datasource and a microflow
onClick, and only theonClickflow got a ref. Thecause is a hypothesis (one microflow ref kept per widget), not confirmed in mxcli's source.
REFRESH CATALOG FULL SOURCEcatalog (mxcli v0.27.0), listed the page that holds a flow under "Source Matches" (checked for 2 flows, each one PAGE row beside its own MICROFLOW row). On a plainREFRESH CATALOG FULLcatalog the same search finds nothing and mxcli prints "the source index (CATALOG.SOURCE) is not built"; that is why the note says to rebuild. An independent run by the reviewer agreed. It replaces an earlier per-pagedescribe pageloop (199 mxcli processes on this app).Checklist
LEAKGUARD_BASE=origin/master, then a read of the diff). Examples useShop.DS_Orders.test-catalog-edge-guard.sh, which targets the changedgraph-sweep.sh) + T2 (the field run above).mxcli search, run on macOS only. Not run on Git Bash.## Unreleased, credited.Verification