Repository navigation
Fix empty composer cancellation and remote draft lifecycle - #38
Conversation
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 Please review the full draft lifecycle correction, especially generated-default cancellation, preserving local revisions on no-op saves, complete-snapshot removal of unchanged synchronized drafts, and recovering new work from an open composer after removal without duplicating queued messages. All 635 tests and the real Linux editor close/input checks passed locally. Draft disappearance never marks an outbox send successful. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e94c1a75b3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Please review current head 4ae2853. The identity-incomplete snapshot finding is addressed: unidentified unclaimed server drafts defer cleanup and duplicate imports, including queued mappings; ambiguous unsupported server drafts also protect legacy local content. All 639 local tests pass, including recovery on the next successful identity capture. CodeRabbit's initial review and all initial platform/CodeQL checks passed. |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
Opening and closing an untouched new message or reply currently saves generated signatures/quotes as a draft. Reopening a saved draft also advances its local revision, and synchronized drafts that leave Outlook's Drafts folder remain stuck as “Missing on server” when their old IDs stop resolving.
This change gives the composer an explicit default-content baseline, cancels default-only composers, and uses durable deletion plus a fresh identity when cleared content is typed again. Unchanged saves preserve the local revision. Closing remains open on a failed save/delete, and new edits in an editor whose synchronized copy was removed are recovered under a new identity; queued messages cannot be duplicated through that path.
Reconciliation uses a complete, validated Drafts snapshot and identity matching to transactionally remove an absent, unchanged synchronized mirror, including legacy mappings. Unidentified server entries defer cleanup and duplicate imports until identity capture recovers, and unsupported attachments protect ambiguous legacy copies. Real unsynced edits are preserved. This does not mark any outbox send accepted; uncertain sends still require positive delivery evidence.
Validation:
The live app tunnel returned HTTP 502 during investigation, so the remaining production drafts have not been manually modified.
Summary by CodeRabbit