Conversation
Reactions from the react tool were silently dropped in webchat because the adapter is a no-op and the SSE bus had no reaction event type. Backend: add ApiEvent::Reaction variant, emit it in the outbound routing loop, persist reactions via a new 'reaction' column on conversation_messages, and include them in the timeline query so they survive page refresh. Frontend: add ReactionEvent SSE handler that attaches the emoji to the most recent user message, and render it as a chip overlapping the message bubble.
…E fields Address PR review feedback: - Thread message_id through OutboundResponse::Reaction and ApiEvent::Reaction so the frontend can target the exact message instead of scanning backwards (coderabbitai) - Make log_reaction async with a retry loop (5 attempts, 25ms backoff) to handle the race where the fire-and-forget user message INSERT hasn't landed yet (tembo) - Guard the frontend SSE reaction handler against missing channel_id/emoji fields before mutating state (tembo)
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Port of spacedriveapp#269. Adds persisted reaction events and webchat rendering. Staged on integration/upstream-prs.