mcp: instantiate repeaters before serving a tool call
A pass materializes repeater and conditional instances on event dispatch and before rendering, but not while layout info is evaluated. So the tree an introspection request walks reflects the model as of the last event. An MCP client that changes a model and then reads back element geometry sees the previous instances, and their stale geometry with them. Run the pass over the tracked windows at the top of the MCP tool dispatch. That happens outside any property evaluation, so it doesn't re-enter a tracker mid-pull the way the same pass on the layout-info path would. It does mean an MCP read can run application change handlers, which the pass loops over together with instantiation. This covers the MCP transport only. The systest protobuf transport shares the `introspection::dispatch` functions but not the fix. A plain property read through the generated getters also remains stale; see #13223. ChangeLog: Fixed the MCP server reporting stale element geometry after a model change.
T
Till Adam committed
a17b7a6914e97cd68935f88f7ef79c0faf0ad24b
Parent: c4e41b6
Committed by Simon Hausmann <hausmann@gmail.com>
on 9/5/2026, 10:06:52 AM