Feature release: expands the package into a fuller commenting toolkit, backward-compatible and framework-agnostic.
Highlights
- Column rename
text→body, withtext/commentmodel aliases (read + write) for backward compatibility. - Threading via
reply_to_comment_id—replyToComment()/replies()relations,HasComments::rootComments(). - Reactions — per-user emoji reactions (
react()/unreact()), one per user per comment; reaction column pinned toutf8mb4+utf8mb4_binon MySQL/MariaDB and trimmed on write. - Edit history (opt-in) —
comment_changelogssnapshots gated byconfig('comments.changelog'). - Lifecycle events —
CommentCreated,CommentUpdated(carriespreviousBody),CommentDeleted,ReactionAdded,ReactionRemoved. - Mentions —
mentionedHandles()parses@handles; delivery left to the app. - Publishable config — overridable models,
user_model,changelog,mentions.pattern,auto_load_migrations. - Tooling —
phpbumped to^8.1; Testbench-based test suite (12 tests).
Upgrade note
The text → body rename is a breaking DB change for existing installs (code paths are aliased). Apps that own the comments schema (e.g. otper) should set auto_load_migrations => false.