Repository navigation
fix(pages): container names in item slots (#2109) and bindings through an outer data view (#2107) - #2157
Merged
Conversation
…, control bars and combo box options (#2109) describe page -> exec of four FactoryManagement pages was refused on its own output (MDL-BUTTON02, MDL-PAGEARG01), although the stored pages build: - a show page in a selectable data grid's column passing `$grid1`: the grid's selection, stored as Variable {Widget: grid1} as from its control bar (MxModelReflection.MxObjectType_Select); - `$dataView3` from the control bar (filters placeholder) of a grid inside dataView3: the bar sits inside the grid, so dataView3 is an outer container there (OIDC.OIDC_Client_NewEdit); - `$dataView2` in a combo box's option content: the option is the combo box's own context (AgentCommons.Version_NewEdit). The check walk and the show page argument context model the three, and the engine enters a data widget through the same constructor (enteringDataWidgetOf), so check and exec agree. Re-measured on 11.16: the control-bar case builds with 0 errors in the variable form written since #2095; two older tests are updated with that evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
Studio Pro stores a binding to an outer data view's object with the
data-view pair SourceVariable {Widget, PageParameter}, with association
steps for a path. describe printed the bare qualified name, and the rewrite
read it against the nearest data view: CE7247 on five ConversationalUI
markdown viewers, "TraceView has no attribute HasError" on Trace_Details.
`$dvOuter.Attr` and `$dvOuter/Assoc/Attr`, the spelling input widgets
already had (#826, #833), now work on a pluggable widget's attribute
property and in `Visible: … in (…)`: one resolver (namedObjectVariable)
for check, describe and exec, MDL-WIDGET34 accepting an enclosing data
view, the rooted path accepted in the form the parser produces, and
WidgetObjectBuilder.SetAttributeWithSteps to store the steps. All six
pages report Unchanged page; a fresh page with the three forms builds with
mx check 0 errors on 11.16.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
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.
Closes #2109. Closes #2107.
Both issues come from a
describe page→execround trip of every page in FactoryManagement (Mendix 11.16). The stored BSON was measured before any code changed. Neither shape occurs in TestApp or PedApp. One commit per issue.#2109:
checkrefused Studio Pro's own data-container namescheckrefused its own describe output on four pages (MDL-BUTTON02 "grid1is the data container the widget sits in directly", MDL-PAGEARG01 "an explicit one is rejected as CE0115"). The untouched app builds them. Its only 4 errors are unrelated workflow images.A walk of each page's property paths showed three different slots:
MxModelReflection.MxObjectType_Select(also OIDC grid3,UserCommons.ClaimsForClaimEntityAttribute)Datagrid:grid1 > [columns] > [content], grid withSelection: SingleVariable {Widget: grid1}: the grid's selection, the shape a control-bar button stores (#122)OIDC.OIDC_Client_NewEditactionButton7Datagrid:grid1 > [filtersPlaceholder](described ascontrolbar), grid inside dataView3Variable {Widget: dataView3}AgentCommons.Version_NewEditcontainer5Combobox:comboBox3 > [optionsSourceAssociationCustomContent], inside dataView2Visible: $currentObject = $dataView2Change:
rowSelectionOfandnamesRowSelection. It is kept apart fromselectionOf, sodelete $gridis unchanged.nearestis"". The bar takes its object from above the grid, but sits inside the grid.enteringDataWidgetOfis the one constructor the check walk and both engine sites use. A fix inargContextForChildrenalone left exec refusing what check accepted.Two older tests change on new evidence:
cmd_pages_showpage_selection_arg_122_test.gorefused the column case as an "unmeasured shape". FactoryManagement now measures it.validate_page_own_container_name_test.go'sbtnCtlBarwas CE0117 on 11.14. That was an error in an expression$dvP. Since [up#1796] A flow argument naming an enclosing data view that shows a page/snippet parameter ($dvName) is written as PageVariable { Widget } only: mx check CE0115 (regression since v0.28; check/exec pass) #2095 the argument is written as the variable pair, and a probe builds it with 0 errors on 11.16, with a CE1365 positive control in the same build.The same probe also built a button directly in
dvPpassing$dvPclean, which MDL-BUTTON02 still refuses. That question is #2149, not this PR.#2107: a binding to an outer data view resolved against the nearest one
Studio Pro stores these with the data-view pair
SourceVariable {Widget: <outer data view>, PageParameter: …}:markdownViewer1.stringAttribute=GenAICommons.Span.Outputwith{Widget: dataView1, PageParameter: ToolSpan}.container112Visible-by-attributeGenAICommons.Trace.HasErrorwith{Widget: dataView6, PageParameter: Trace}.Span_TextGeneration_SlideInmarkdownViewer3 adds association steps (Span_Trace).parameterSourceNameignores a pair whoseWidgetis set, so describe printed the bare qualified name. The rewrite then read it against the nearest data view: CE7247, or "TraceView has no attribute HasError".Change:
$dvOuter.Attrand$dvOuter/Assoc/Attr, the spelling input widgets already had (#826, #833), now work on a pluggable widget's attribute property and inVisible: … in (…).namedObjectVariable, now also used byresolveRootedAssociationPath, and one reader,namedObjectSourceName.WidgetObjectBuilder.SetAttributeWithStepsstores the steps (widgetobj; mcp reports it unsupported).Evidence
Unchanged page.Version_NewEditis blocked only by MDL-WIDGET03 (MDL-WIDGET03 refuses an inline Style on a dynamic text that Studio Pro stored and that builds #2110), and its MDL-BUTTON02 is gone.$dvOuter.Output,$dvOuter/Span_Trace/SystemPromptandVisible: $dvOuter.Flag in (true)builds with mx check 0 errors on 11.16. So do both bug-test scripts.make test-integration-roundtrippasses, with nothing struck from the allowlist.make ci-local: only the two known macOS mx Java-dependency daemon tests fail.TestIssue1640passes here, with the TestApp submodule present.🤖 Generated with Claude Code
https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf