SIGN IN SIGN UP

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