Repository navigation
fix(store): take the "left" mark off rejoined chats (cli-core 0.352.0) - #744
Merged
Merged
Conversation
cli-core 0.352.0 (WireCatLabs/cli-core#1621) stops `saveChats` and `applyDelta` from clearing a chat's "left" mark when the update carries no membership. A chat list that is not complete, and the login snapshot, are lists of chats the account is in, so they now call the new `ChatsStore.rejoinChats` for the chats they name. A complete list still goes through `markChatsLeft`, which marks the missing chats left and rejoins the named ones. Other states such as "archived" are kept. Without this, a chat the owner rejoined stayed "left" after a cut-short list or a login: hidden from `max chats list`, and deleted with its messages by `store clear --left`. 0.351.0 only adds API; nothing else to adopt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The login case now also checks that "archived" survives, and both rejoin cases check that a second account's left chat stays left. The store architecture page says that cut lists and logins take the left mark off the chats they name. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merged
leemour
added a commit
that referenced
this pull request
Oct 19, 2026
Version and dated changelog for 0.65.0: the login QR prints as text without a terminal and `--qr-file` is gone (#746, cli-core 0.352.0 → 0.362.0), plus #744 and #745 already on main. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Take @wirecat/cli-core 0.352.0 (WireCatLabs/cli-core#1621, BUG-322) and do the adoption its changelog
requires. 0.351.0 only adds API, and no other max code marks chats left or saves membership, so there is
nothing else to adopt.
In 0.352.0,
saveChatsandDelta.chatsno longer clear a chat's "left" mark when the update has nomembershipState. WithoutrejoinChats, a chat the owner rejoined stays "left" after a cut-short list ora login: it is hidden from
max chats list, andstore clear --leftdeletes it with its messages.rememberChats(src/record.ts): a complete list callsmarkChatsLeftas before (it now also takes themark off the chats it names); a cut-short list calls
rejoinChats(key, ids).applyLogin: callsrejoinChatsfor the login's chats. Before 0.352.0applyDeltadid this itself.The ids are the same list
rememberChatsgets:mergeLoginreads the session's chats after the restof the list has been read or merged, so a login is no weaker proof of membership than the cut-short list
cli-core prescribes. It also keeps the promise in docs/archive.md that a chat you are added back to
reappears at the next login. That MAX's login list names only chats the owner is in is not measured.
account's left chat alone; a complete list still marks the missing chat left. The cut-short and login
cases fail without the fix.
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com