Conversation
…quest, ErrorCode)
…nge, DevicePlatform)
7 fixes from deep review: TransferOwner atomicity, CreateConversation member check, degraded metrics, LastMessage cache, ES member_ids redundancy, AddMembers failure visibility, ListMembers pagination.
8 tasks covering all 7 fixes: TransferOwner atomic, CreateConversation member check, degraded metrics, LastMessage cache, ES member_ids, AddMembers failure visibility, ListMembers pagination.
Replace three separate DAO calls (update_role x2 + conversation.owner_id) with a single transfer_owner method that uses FOR UPDATE row locks on both member rows and the conversation row within one transaction, preventing inconsistent state on partial failure.
- Add caller_uid to fetch_last_message_ signature to scope cache per user, preventing User A's after_seq-scoped result from leaking to User B. - Serialize message_id (int64) as JSON integer instead of string, and parse it with asInt64() instead of asString().
- Task6: Fix UpdateConversation wiping ES member_ids by passing current members - Task6: Add metrics for update_member_ids failures with empty-guard - Task6: Restore defense-in-depth require_member_ in SearchConversations - Task7: Collect failed_member_ids in AddMembers with WARN logging - Task8: Add offset-based pagination to ListMembers
Prevent UB from negative offset into vector iterator.
…e safe JSON serialization - Cache key now includes after_seq to prevent stale previews when user's read cursor advances between cache fill and subsequent ListConversations - Replace manual string concatenation with Json::Value to properly escape sender_id and avoid silent cache misses from malformed JSON
docs(agent): add repository-local engineering Skills
feat(cache): harden Redis resilience and multilevel caching
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.