Repository navigation
fix: preserve recoverable chat deletion - #383
Conversation
Prefer recoverable chat deletion through Messages’ Recently Deleted operation, without falling back to permanent removal after a failed recoverable deletion (#381, thanks @thurstonsand). Fixes #381.
|
🦞👀 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 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. |
|
Codex review: needs maintainer review before merge. What this changesPrefer Recently Deleted for chat deletion, retain legacy selectors when unavailable, and advertise the new capability to RPC callers. Example: Delete a disposable conversation on macOS 26.5.1 using chat-delete.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep open: this maintainer-authored PR addresses demonstrated loss of recoverability that remains on main, and inspection found no introduced correctness defect. Priority: P0 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherCLI and JSON-RPC chat deletion requests converge on the injected Messages helper, which resolves the requested chat and invokes IMChatRegistry. flowchart LR
A[CLI chat-delete] --> C[Bridge request]
B[RPC chats.delete] --> C
C --> D[Shared deletion handler]
D --> E[Recently Deleted operation]
D --> F[Legacy operation when unavailable]
E --> G[Messages conversation storage]
F --> G
Technical reviewBest possible solution: Land the focused shared-handler repair with matching RPC capability reporting and the explicitly accepted legacy compatibility behavior. Do we have a high-confidence way to reproduce the issue? Main demonstrably routes deletion through the reported legacy selector, and thurstonsand supplies a concrete v0.20.0 comparison on macOS 26.5.1; this review executed no deletion. Is this the best way to solve the issue? The patch changes the existing shared owner and its capability registry without adding a parallel deletion path, while preserving the compatibility policy chosen by its maintainer author. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 5dc47b8ee7b6. 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. LabelsLabel changes:
Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
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 5, 2026, 2:00 AM ET / 07:00 UTC. |
Fixes #381.
Prefer the registry operation that moves a chat’s messages into Recently Deleted, using the requested chat, a deletion date, and synchronous completion. Keep older selectors only when this operation is unavailable; exceptions never trigger permanent-removal fallback. Advertise the capability for RPC dispatch.
Validation: synthetic native regression fails on main and passes after the fix, covering method selection, target, synchronous arguments, exceptions, and legacy paths. RPC tests cover capability advertisement and dispatch for each supported selector. Independent P0–P2 review is clean. No live Messages sends or deletions were used.