Skip to content

restrict a2ui rendering paths

acad299
Select commit
Loading
Failed to load commit list.
Merged

add a2ui message rendering #5838

restrict a2ui rendering paths
acad299
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed May 19, 2026 in 28m 47s

Code review found 3 potential issues

Found 3 candidates, confirmed 3. See review comments for details.

Details

Severity Count
🔴 Important 0
🟡 Nit 2
🟣 Pre-existing 0
Severity File:Line Issue
🟡 Nit packages/app/ui/components/ChatMessage/StaticChatMessage.tsx:110-119 A2UI button in DM thread view posts as thread reply, not top-level message
🟡 Nit packages/app/ui/components/PostContent/BlockRenderer.tsx:702 a2ui null renderer leaves empty padded wrapper in non-chat consumers

Annotations

Check warning on line 119 in packages/app/ui/components/ChatMessage/StaticChatMessage.tsx

See this annotation in the file changed.

@claude claude / Claude Code Review

A2UI button in DM thread view posts as thread reply, not top-level message

When a user opens the thread view of an A2UI card in a DM and taps a button, `handleA2UIAction` passes `replyToPostId: null` to express "send at channel root", but the surrounding `DraftInputContextProvider` is the thread composer (PostScreenView.tsx:798) whose `sendFromThreadComposer` (PostScreenView.tsx:735) unconditionally overrides `draft.replyToPostId = parentPost.id`. The action text lands as a thread reply instead of a top-level DM message, so a bot listening to channel-root events never 

Check warning on line 702 in packages/app/ui/components/PostContent/BlockRenderer.tsx

See this annotation in the file changed.

@claude claude / Claude Code Review

a2ui null renderer leaves empty padded wrapper in non-chat consumers

After the `restrict a2ui rendering paths` commit registered `a2ui: () => null` as the default renderer at BlockRenderer.tsx:702, the wrapping `BlockWrapper` still renders unconditionally with its default `padding: '$l'` — leaving a visible ~32px empty padded box wherever an a2ui-bearing post surfaces outside chat. ChatReferenceContent (ContentReference.tsx:215) is the most realistic trigger: quote-referencing a DM message with an a2ui blob into a group channel renders the empty wrapper inside th