mirror of
https://github.com/block/buzz.git
synced 2026-10-29 05:21:31 +00:00
fix(desktop): retain outgoing draft deletion authority after navigation
Bind authored revisions to captured lifecycle visits instead of the visible editor. Apply source authority to cancellation and preflight recovery and sent-draft cleanup, while keeping editor ownership separate. Cover reviewer deletion reproduction, queued files, supersession, return visits, and actual thread-switch persistence. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson <loganj@squareup.com> (cherry picked from commit 13e1245bbd042fb6d1afa6cf54152e839d9fe400) Signed-off-by: Logan Johnson <loganj@squareup.com> (cherry picked from commit e5e77d88c3eb87360aac8771d17389abee831d3f) Signed-off-by: Logan Johnson <loganj@squareup.com>
This commit is contained in:
@@ -52,8 +52,13 @@ visible pending, Escape/retry and route navigation at deferred IPC boundaries.
|
||||
|
||||
Invitation intent belongs to one visit of the effective persistence key and
|
||||
channel, not just the mounted composer or destination channel. Same-channel
|
||||
thread changes and A → B → A invalidate the original visit. The same owner gates
|
||||
optimistic clear, recovery and pending state. Invalidation makes recovery durable
|
||||
thread changes and A → B → A invalidate the original visit. The visible owner gates
|
||||
optimistic clear, editor recovery and pending state. Storage recovery instead
|
||||
consults the captured source visit's authored revision even after that visit
|
||||
exits; losing visible ownership never revokes an authored deletion. The lifecycle
|
||||
retains a per-visit revision record through its captured accessor, so B's edits
|
||||
cannot authorize or suppress A's recovery. Preflight recovery and sent-draft
|
||||
cleanup use that same source authority. Invalidation makes recovery durable
|
||||
synchronously, before a later visit can load or edit the source draft; late async
|
||||
completion cannot revive that recovery or release a newer attempt's latch.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user