Repository navigation
fix: read custom reaction emoji from associated_message_emoji - #396
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs real behavior proof before merge. What this changesPrefer the stored custom reaction emoji across snapshots and streaming reads, retaining text fallback for missing or empty values. Example: A type-2006 reaction stores 🔥 in associated_message_emoji while its Korean summary contains 🙂.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Blocked before merge - 1 item remains Keep open: this PR fixes a current custom-reaction decoding bug, and the earlier watch-pipeline finding is resolved; no new actionable code defect was found. Priority: P2 Before merge
FindingsNone. Tests
Agent review detailsHow this fits togetherIMsgCore reads the Messages SQLite database and supplies decoded messages and reaction snapshots to CLI history, watch, and JSON-RPC consumers. flowchart TD
A[Messages database] --> B[Optional column detection]
B --> C[Reaction snapshot queries]
B --> D[Shared message row selection]
C --> E[Reaction decoding]
D --> E
E --> F[History snapshots]
E --> G[Watch and RPC events]
Technical reviewBest possible solution: Land consistent database-first reaction decoding through the existing query and message owners while preserving legacy fallback and removal semantics. Do we have a high-confidence way to reproduce the issue? Current-main source deterministically omits a custom reaction when its emoji exists only in associated_message_emoji and no usable summary remains; this read-only review ran no target code. Is this the best way to solve the issue? Preferring the stored value addresses the cause, and the revised patch now covers snapshots, standalone events, and the shared streaming pipeline without adding a parallel subsystem. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 1bc0679663bf. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
Preflight sourceSource unknown. Source comparison at the observed PR snapshot only. Completion is self-reported; body, policy, tests, execution, and report bytes are not verified. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. LabelsLabel changes: No label changes. Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (1 earlier review cycle)
Reviewed November 8, 2026, 3:27 PM ET / 20:27 UTC (Revision 2). |
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
I can't provide a real-device run from this environment. The evidence remains synthetic in-memory SQLite tests and fork CI; I have not run the shipped CLI against a real Messages database, so I can't claim real-device proof. |
9c32a7a to
a3d75c6
Compare
steipete
left a comment
There was a problem hiding this comment.
Reviewed code and fixture proof; exact-head CI is green.
|
Thanks for reviewing and merging this! |
Custom reactions were parsed from English summary text, losing emoji when summaries were localized or absent. Read associated_message_emoji across history, bulk snapshots, events, and message streams, with summary parsing retained for older schemas and null/empty column values.
Refs #392. Synthetic SQLite fixtures fail on main and pass with this change, including localized additions/removals, missing text, old schemas, null/empty values, and streaming. Independent Codex review through P2: scoped-clean. Exact-head CI is required before merge. No real Messages database or sending was used.
Thanks @tahodev for the implementation and @privatenumber for the report.