Skip to content

Add message reactions and emoji support - #176

Merged
llbbl merged 1 commit into
masterfrom
feature/issue-127-message-reactions
Sep 16, 2026
Merged

llbbl merged 1 commit into
masterfrom
feature/issue-127-message-reactions

Conversation

@llbbl

@llbbl llbbl commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #127

Adds authenticated emoji reactions for messages across the database, HTTP API, WebSocket, Vue, and Svelte clients. Reactions are stored with duplicate protection, rate-limited, broadcast live, and rendered with accessible badges and picker controls.

Changes

  • Adds cross-database message_reactions storage with foreign keys, indexes, and uniqueness protection.
  • Adds authenticated list/create/delete reaction endpoints with documented payloads and validation.
  • Adds rate-limited WebSocket reaction mutations and aggregate broadcasts.
  • Adds matching accessible Vue and Svelte reaction badges and emoji pickers.
  • Adds integration, WebSocket, browser, and API documentation coverage.

Validation

  • composer test: PASS (179 tests, 553 assertions)
  • composer test:integration: PASS (28 tests, 172 assertions)
  • composer test:integration:websocket: PASS (6 tests, 45 assertions)
  • composer analyse: PASS
  • composer cs-check -- --sequential: PASS
  • composer audit: clean
  • pnpm check: PASS
  • pnpm build: PASS
  • Focused Playwright Vue/Svelte reaction flows: PASS (2 tests)

Mutation testing is manual-only and was not run.

@llbbl
llbbl merged commit 538b961 into master Sep 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Message reactions and emoji support

1 participant