Repository navigation
Keep messages only this device has when a grouped channel list refreshes - #6728
Conversation
|
SDK Size Comparison 📏
|
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review. WalkthroughGrouped first-page results now remove only existing channels absent from the response. Tests cover retained and omitted channels, including preservation of local messages when refreshed channel data has no messages. ChangesGrouped query refresh
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~8 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The grouped refresh preserves local-only messages while updating returned channels. No issue identified here needs resolution before merge. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change affects which messages remain visible on this device after a refresh. It does not appear to add a new access path, but behavior across overlapping requests and app restarts is not fully established. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit checks the channel stream, Comment |
andremion
left a comment
There was a problem hiding this comment.
Looks good. One optional note inline.




Goal
When a grouped channel list refreshes its first page (for example on every reconnect), each row is replaced with the
server's copy, so messages that exist only on this device disappear from the channel preview. One example is a send the
backend answers with a
type="error"message it never stores. The regular channel list keeps them.Port of #6726 to develop.
Part of AND-1564
Implementation
when none are. Channels still in the page keep their current copy, so
joinMessagesmerges it with the server's, asthe regular refresh does.
Testing
QueryChannelsLogicGroupedTestchecks that only the channels dropped from the page are removed, and that nothing isremoved when every channel is still in the page. A test on the real state logic seeds a retained channel with a
local-only message, refreshes it with an empty message list, and checks the message survives while the channel's own
fields come from the server.
🤖 Generated with Claude Code
Summary by CodeRabbit