From the JTSBootLogboek project (H15), re-verified on main fcddbc6 with TestApp (11.14). Silent wrong write on the documented describe → edit → exec workflow.
describe navigation prints a menu item whose action is not page, microflow or sign-out without its action. Re-executing the description writes Forms$NoAction. The project renamed captions this way and lost its "Reports" item (nanoflow Reporting.ShowReportsHome) without any warning. Measured:
- Nanoflow, open link and create object on menu items and sub-items: no syntax, nothing printed, and a rewrite turns them into NoAction.
- Call microflow: only the microflow name is kept. Progress bar, confirmation, async, form validations and parameter mappings are lost.
- Show page:
FormSettings is rebuilt, so a title override is lost.
Causes:
- Reader:
resolveMenuAction (mdl/backend/modelsdk/navigation_read.go ~295-327) knows only page, microflow and sign-out.
- Describe:
printMenuMDL (mdl/executor/cmd_navigation.go:429-469) prints nothing else. Standalone menus share it.
- Grammar:
navMenuAction (MDLParser.g4:674-678) has only show page, call microflow and sign out.
- Writer:
navPatchWebProfile (navigation_write.go:189-199) rebuilds the whole Menu, and navMenuAction (:358-392) falls back to NoAction.
Fix: do what #959 did for navigation-list items.
- Keep the raw action on the menu item.
- Describe it with the shared client-action renderer, including its settings.
- Accept the general widget client-action grammar for a menu item, and write it with the widget serializer.
- Until then, as a guard: exec refuses (or carries over by caption path) any stored item whose action the spec cannot express, and describe prints a comment for an unsupported action.
Same area:
- A native profile's
{menu} and sync blocks are silently ignored (navPatchNativeProfile, :216-251). Warn or refuse.
- The reader ignores
BottomBarItem.Action and its icon.
- A native nanoflow home prints as
home microflow X. Add a home nanoflow keyword.
check --references refuses describe's own navigation output: Icon: image System.Images.Save gives "unknown image collection System.Images". So on TestApp the round trip needs --no-check.
Verify each action kind with mx check and a describe → exec → describe round trip that compares the stored navigation unit.
From the JTSBootLogboek project (H15), re-verified on main fcddbc6 with TestApp (11.14). Silent wrong write on the documented describe → edit → exec workflow.
describe navigationprints a menu item whose action is not page, microflow or sign-out without its action. Re-executing the description writesForms$NoAction. The project renamed captions this way and lost its "Reports" item (nanoflowReporting.ShowReportsHome) without any warning. Measured:FormSettingsis rebuilt, so a title override is lost.Causes:
resolveMenuAction(mdl/backend/modelsdk/navigation_read.go~295-327) knows only page, microflow and sign-out.printMenuMDL(mdl/executor/cmd_navigation.go:429-469) prints nothing else. Standalone menus share it.navMenuAction(MDLParser.g4:674-678) has only show page, call microflow and sign out.navPatchWebProfile(navigation_write.go:189-199) rebuilds the whole Menu, andnavMenuAction(:358-392) falls back to NoAction.Fix: do what #959 did for navigation-list items.
Same area:
{menu}andsyncblocks are silently ignored (navPatchNativeProfile, :216-251). Warn or refuse.BottomBarItem.Actionand its icon.home microflow X. Add ahome nanoflowkeyword.check --referencesrefuses describe's own navigation output:Icon: image System.Images.Savegives "unknown image collection System.Images". So on TestApp the round trip needs--no-check.Verify each action kind with mx check and a describe → exec → describe round trip that compares the stored navigation unit.