a9cfcf70c1
latestChatActions rebuilds the ChatView handler bag field by field, so an optional handler added to ChatActions but not to the adapter is silently dropped before it reaches ChatView. Live CDP probe on a built Desktop: the wiring controller had onAttachPastedText, ChatView received undefined, and a 4,500-char paste stayed inline. onAttachPrCommentUrl and onSteerHidden (already on main) were dropped the same way on the main chat surface; the session-tile path passes them directly and was unaffected. Forward all three via latestOptional and pin the class with one invariant test: every handler present on the actions bag is present on the adapted bag (red on the previous adapter).