Tags: musonza/chat
Tags
feat: Add per-participant conversation archive (#361) (#362) * feat: Add per-participant conversation archive (#361) Adds a Mail-style archive primitive at the participation level, so a single recipient can hide a conversation from their inbox without affecting the other participants. New messages auto-unarchive the recipient (configurable). Closes #361 Co-Authored-By: Claude <noreply@anthropic.com> * style: Fix Pint alignment in createCustomNotifications Co-Authored-By: Claude <noreply@anthropic.com> * refactor: Address review feedback on archive feature - Re-lead the participation_archived_index on (messageable_id, messageable_type, archived_at) so the inbox listing query in Conversation::getConversationsList can actually use it. - Move auto-unarchive to a single SQL update that reads from the DB instead of iterating the (possibly stale) in-memory participants collection. Handles null participation_id (system messages) by unarchiving all participants in that case. - Strengthen the idempotency test to assert updated_at also stays unchanged on a no-op re-archive, instead of comparing only second-resolution archived_at strings. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
feat: Add configurable broadcast connection and queue (#356) * feat: Add configurable broadcast connection and queue Allow customizing the broadcast connection and queue for the MessageWasSent event via config, instead of always using app defaults. Closes #296 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Declare $connection and $queue properties on MessageWasSent Fixes static analysis failure for undefined properties. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * style: Fix Pint formatting for MessageWasSent Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Laravel 13.x Compatibility (#355) * Bump dependencies for Laravel 13 * Update GitHub Actions for Laravel 13 * Fix test compatibility with PHPUnit 12 and Laravel 13 CI Replace /** @test */ annotations with test_ method prefix in all unit tests, since PHPUnit 12 dropped support for @test doc-block annotations. Add minimum-stability dev step for Laravel 13 CI builds and clean up extra blank lines in workflow file. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix code style and ValidateParticipantTypeTest annotations Run Pint to fix class_attributes_separation and phpdoc_trim issues. Apply test_ prefix to ValidateParticipantTypeTest from master merge. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Shift <shift@laravelshift.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix security issues, bugs, and code quality improvements (#354) * Fix security issues, bugs, and code quality improvements - Fix authorize() method name in all FormRequest classes (was `authorized()` which Laravel never calls, so authorization was silently skipped) - Add participant_type validation in BaseRequest to prevent arbitrary class instantiation via polymorphic model injection - Add configurable participant_models whitelist in config - Fix MessageNotification::markAsRead() which called both update() and save() redundantly (update() silently failed due to mass assignment protection) - Fix createCustomNotifications() inserting empty array when participants count is exact multiple of 1000, and off-by-one in chunk threshold - Replace deprecated $dates property with $casts in MessageNotification - Fix loose comparison (== to ===) in MessageService::send() - Remove obsolete .travis.yml (GitHub Actions is the active CI) https://claude.ai/code/session_01EZScE7VVUZ6GtoZxikUJxe * Add tests for validateParticipantType security validation Covers whitelist enforcement, non-model rejection, nonexistent class rejection, and correct error messages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix pint style issue in ValidateParticipantTypeTest Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix code style issues for pint 1.29 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
feat: Add message reactions support - Add/remove/toggle reactions on messages (emoji or text-based) - Get reaction counts grouped by type - Check if participant has reacted - Broadcast events (MessageReactionAdded, MessageReactionRemoved) - New migration: chat_message_reactions table
PreviousNext