Repository navigation
fix: verify recovered and tracked send receipts - #399
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 Summary: ✅ CompletedThis 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. |
|
Codex review: needs changes before merge. What this changesThis PR adds stale-chat attachment recovery, recovered-chat receipt matching, and persisted UUID verification for tracked sends. Example: A tracked send requests UUID 6B3A5202-2D11-4E22-A813-AA3A89121E8F, but Messages persists A9DD330E-5007-467F-8B9B-FE8938E3878B.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Partial Merge readiness⛔ Needs changes before merge - 1 item remains Keep this PR open: it addresses confirmed send failures, but tracked receipt verification must follow the helper’s resolved chat. Priority: P1 Before merge
Findings
Agent review detailsHow this fits togetherCLI and RPC commands resolve chat targets, dispatch through AppleScript or the injected Messages helper, and inspect read-only chat.db receipts before returning send results. flowchart TD
A[CLI or RPC request] --> B[Chat target resolver]
B --> C[AppleScript transport]
B --> D[Injected Messages helper]
C --> E[Messages database]
D --> E
E --> F[Receipt verification]
F --> G[Success or delivery uncertainty]
Technical reviewBest possible solution: Verify the exact outgoing tracked UUID in the helper’s resolved chat while preserving account-bound recovery and retry-unsafe uncertainty. Do we have a high-confidence way to reproduce the issue? Current main and the affected-release reports establish the original failures; the introduced target mismatch is traceable through helper resolution, acknowledgment, and receipt SQL without executing target code. Is this the best way to solve the issue? The shared recovery and exact-UUID approach fits the existing contract, but receipt verification must consume the resolved destination already returned by the helper. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 9070f71a2d9c. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceAcceptance criteria:
What 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. LabelsLabel 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 Reviewed November 14, 2026, 2:18 AM ET / 07:18 UTC. |
Fix send identity and receipt handling for stale direct chats and tracked sends.
Refs #388, #394, and #385. Regression tests use synthetic SQLite databases, injected transports, and AppleScript operations replaced with fixtures. No messages, identity changes, or live database edits were performed. Validation and exact-head CI are recorded below before merge.
Validation: baseline regression fixtures fail; the combined candidate passes 17 CLI and 11 core fixture tests, final integrated focused macOS tests, and
make lint. The documented Linux gate passed on Crabbox. Independent P2 review is clean. Full macOS/Linux and CodeQL checks run at this PR head.