react-langchain: a nested subagent's own values.ui never reaches its transcript
split out of #7422, whose live-channel half is fixed in #7699.
problem
a subagent's transcript renders generative UI from two sources at the root: the live custom channel fold and stream.values[uiStateKey], merged by mergeUIMessages with the state snapshot authoritative. #7699 gives subagents nested below the first level their own custom projection, so the live half now reaches them. the state half still does not: useSubagentTranscripts acquires messagesProjection(namespace) and nothing else, so UI a nested subagent writes into its own graph state is invisible to its transcript. UI that lands in the root graph's ui key is unaffected, since the root map already carries it keyed by the nested message id.
the visible consequence is a subagent whose UI is present while the run streams and gone once the live buffer no longer covers it (a later run, a reload of a completed thread).
direction
acquire valuesProjection(snapshot.namespace, messagesKey) next to the messages projection in useSubagentTranscripts, read its ui key, and merge it into that resource's UI map as the snapshot side of mergeUIMessages, which keeps the root's precedence rule. the per-resource memo #7699 added is the place to hang it, so a values event that does not touch ui does not reconvert the transcript (compare #7666, and #7665 for the root's version of that churn).
worth confirming against a running deep agent first: whether deepagents subagents actually keep a ui key in their own state, or whether every push lands in the root graph's state, in which case there is nothing to fix here and this closes as not-planned.
Source: assistant-ui/assistant-ui