Conversation
|
Claude finished @mchenani's task —— View job PR Review: Edit Message SupportReview date: 2026-03-05 19:19 UTC Todo List
SummaryThis is a well-structured implementation of message editing functionality. The core logic is sound with proper validation, good test coverage including edge cases (concurrent edits, out-of-order delivery, authorization), and consistent patterns across all bindings. Most issues flagged by automated reviews have been addressed. Issues Found1. Potential race condition in
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3072 +/- ##
==========================================
+ Coverage 72.37% 72.50% +0.13%
==========================================
Files 477 479 +2
Lines 58942 60264 +1322
==========================================
+ Hits 42658 43694 +1036
- Misses 16284 16570 +286 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The stream_message_edits doesn't expose an on_close callback in Node.js bindings. However, stream_message_deletions follows the same pattern.
The edit_message function sends the message first, then stores the edit record locally. If storage fails, there's a potential inconsistency. But the chances here are rare and nothing harmful would happen. |
ApprovabilityVerdict: Needs human review This adds an 'edit message' feature with schema changes, new content types, and cross-platform bindings (mobile, WASM, Node, iOS, Android). Because it introduces user-facing behavior and database migrations, I'd recommend a human verify the changes. You can customize Macroscope's approvability policy. Learn more. |
Add edit message support across Rust core, FFI bindings, and iOS/Android/Node/WASM SDKs
EditMessageas a new content type with a codec, proto definition, andmessage_editsDB table (via migration) storing edits keyed to original messages.Group.edit_messagein Rust that validates authorship, editability, and content-type match before storing and broadcasting aMessageEditedlocal event.DecodedMessage.edited, with deleted messages never showing edits and reply threading preserved.edit_message,delete_message, andstream_message_editsacross all bindings: mobile FFI, Node N-API, and WASM, withFfiMessageEditCallback/StreamCallback.on_message_editedinterfaces.DbQuerynow requiresQueryMessageEdit, so all implementors must add the new trait; enrichedDecodedMessage.content()returns edited content by default, changing observable content for callers who do not checkis_edited.Macroscope summarized 6be5aaf.