Add first-class change metadata for A2UI surfaces (changeKind, reason, toolCallId) and propagate them into surface revisions and feed items. Implement time-windowed coalescing (2s) in the dock reducer so successive revisions from the same tool call (or identical reason within the window) are merged into one history entry to avoid spamming the revision list. Update chat rendering to show an inline rich card for the latest surface, add a compact changeKind chip/tone across history rows and the dock revision controls, and drop redundant feed items from the same toolCall at render time. Add unit tests for coalescing and the inline card, and update generated websocket-jsonrpc schema to include the new fields.