test(navigation): repro script and symptom-table row for the #989 title override - #1009
Merged
Conversation
…le override PR #989 fixed Forms$FormSettings.TitleOverride in the three navigation writers but shipped without the two artifacts the bug-fix checklist asks for. This adds them. mdl-examples/bug-tests/989-navigation-title-override.mdl replays a navigation profile with a login page, three page menu items (one nested, to reach the recursive sub-item build), a microflow item and a sub-menu container -- four Forms$FormSettings, four TitleOverrides. The evidence in its header is measured, not restated from the PR. A blank Mendix app's own navigation document already stores TitleOverride = null on both LoginPageSettings and the home menu item, so the fix is checked against a Studio Pro-authored document rather than against a warning count. The control on a real 11.12.0 v2 app, both engines: strings -a <nav unit> | grep -c TextTemplate 4 before the fix (3 page items + the login page), 0 after, while grep -c TitleOverride stays at 4 -- the key is still written, now as null. The symptom-table row records the lesson that generalises: grep the builder's callers before concluding a navigation fix is menu-only. Each of the three builders is also the profile's login-page builder, so a fix aimed at menu items alone would have missed half the emitters. Two things the script makes visible are called out in its header as out of scope and are not addressed here: describe navigation drops the `login page` clause (the reader expects a type the document does not carry), and every list these writers emit uses typed-array marker 1 where the same app's own document has 2 or 3. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DufwPkjFimB8BoTm7bWbik
Marker 1 is a legitimate Mendix typed-array marker, not an invalid one -- verified in a Marketplace .mpk mxcli has never touched. The note read as if the navigation lists were corrupt; they were a per-field mismatch with what Studio Pro writes for those fields. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DufwPkjFimB8BoTm7bWbik
ako
force-pushed
the
docs/989-navigation-title-override-repro
branch
from
August 31, 2026 13:51
f591525 to
b30177c
Compare
This was referenced Aug 31, 2026
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.
Summary
#989 fixed
Forms$FormSettings.TitleOverridein the three navigation writers but shipped without the two artifacts the CLAUDE.md bug-fix checklist asks for. This adds them — no behaviour change.mdl-examples/bug-tests/989-navigation-title-override.mdl— replays a navigation profile with a login page, three page menu items (one nested, to reach the recursive sub-item build), a microflow item and a sub-menu container: fourForms$FormSettings, fourTitleOverrides..claude/skills/fix-issue.md, extending the Show Page actions get an empty TitleOverride instead of null, blanking every popup's caption #812 row.Evidence
A blank Mendix app's own navigation document is the reference. It already stores
TitleOverride = nullon bothLoginPageSettingsand the home menu item, so the fix is checkable against a Studio Pro-authored document rather than against a warning count:Control on a real 11.12.0 v2 app, both engines, re-measured against merged
main:mxcli checkpasses on the script;MXCLI_ENGINE=legacyand the default engine both produce 0.The lesson in the table row
Grep the builder's callers before concluding a navigation fix is menu-only. Each of the three builders is also the profile's login-page builder (
writer_navigation.go:116,navigation_write.go:127,nav_patch.go:122, plusnavigation_profile_add.go:108), so a fix aimed at menu items alone would have missed half the emitters.Out of scope, documented in the script header
Two things the side-by-side dump exposed, neither introduced by #989 and neither addressed here:
describe navigationdrops thelogin pageclause — the reader type-asserts*genNav.NavigationProfileLoginFormSettings(propertyLoginPage) while both Studio Pro and mxcli storeForms$FormSettings(propertyForm), so a describe → exec round-trip loses the login page.Every list these writers emit carries typed-array marker 1 —
HomeItems,ParameterMappings,PagesForSpecializations,Menu.Items,Caption.Items— where the same app's own document has 2 or 3 for those fields. Now fixed in fix(navigation): emit the typed-array markers Studio Pro writes #1011, with a census behind each value.Correction to an earlier revision of this description, which said
debug-bson.md's rule makes marker 1 invalid: it does not, and that rule is wrong. Marker 1 is what Mendix itself writes for by-name reference and string lists (CustomWidgets$WidgetValueType.AllowedTypes, 212k occurrences in a Marketplace package mxcli has never touched). These lists were a per-field mismatch with Studio Pro, not corruption. fix(navigation): emit the typed-array markers Studio Pro writes #1011 corrects the skill.🤖 Generated with Claude Code
https://claude.ai/code/session_01DufwPkjFimB8BoTm7bWbik