Repository navigation
fix(chat-store): unify message kind classification - #205
Conversation
|
Warning Review limit reachedNext included review available in 13 seconds. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (14)
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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 36baa66acc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Fixed the CI clippy |
|
Addressed all three Codex repair comments in commit a31520f: repair now runs once per classifier version via a transactional marker, uses bounded 256-row pages, restores recoverable normalized text/captions as well as kinds, and recomputes each affected chat preview from the actual ordered message rows (preserving activity time). Tombstones and undecodable protos remain untouched. Focused test now checks restored text/preview, retained activity timestamp, tombstone non-resurrection, and idempotence. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ad88205748
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a080514c5a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c842210255
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Fixed the latest CI compile error in 2e65c7a: restored the MessageExt trait import still needed by text_content/get_caption after routing the live handler through shared normalization. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2e65c7a037
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed the final Codex finding in 8??: live text and captions now come from the already-normalized |
|
The live wrapper text/caption change is in commit |
|
Reconciled main into this branch with a normal merge (no force push). The only content conflict was |
|
@codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
A newer main commit (#201, |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 192268e98a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed both new Codex findings in |
|
@codex review |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
The first hosted Check after the wrapper-hydration fix caught one |
|
Final reconciliation status: current base is |
Summary
MessageKind::ofand typed kinds.unknownkinds on prepare, only from valid non-tombstoned proto rows; update chat preview kind only when the head timestamp is unambiguous. Repeated repair is idempotent.Resolves #195. Reviewed current main and #200; neither changes the classifier/storage evidence relevant to this fix.
Local validation
cargo fmt --all -- --checkpassed.poll_album_and_product_kinds_share_wrapper_normalization,wrapped_and_new_poll_kinds_are_classified_on_outgoing_write,prepare_repairs_recoverable_unknown_kind_idempotently, andv5_v6_poll_secrets_survive_storage_compaction.cargo test -p oxidezap-session --lib a_stored_poll_creation_hydrates_as_a_votable_poll.clippy::nonminimal_boolin unchangedcrates/chat-store/src/queries.rs:489; the workspace CI clippy result is still needed.No live WhatsApp account or E2E receive/restart/vote test was available or run. Previously stripped secrets cannot be reconstructed; V5/V6 are retained/classified but remain non-votable in this change.
Summary by cubic
Unifies message-kind classification across incoming, outgoing, edited, session-rendered, and stored messages, and repairs recoverable
unknownkinds already persisted in the database.albumandproductkinds, classifies V5/V6 polls, and exposesMessageKind::offor callers.preparereclassifies recoverableunknownrows from valid stored protos in bounded id pages, guarded by a versioned marker stored in the newchat_store_metatable, and recomputes the chat preview; rerunning is harmless.Written for commit 61cd3b4. Summary will update on new commits.