Preserve native workspace recovery across Stop and sandbox reuse (#18332)

Land the thirteen-file native recovery fix independently from #18245.

Retain verified Stop evidence and queued user comments. Retire stale
preparation ownership atomically and require paired sandbox lease
handoff receipts before workspace recovery.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip authored and GitHub committed 2026-10-30 10:57:53 -05:00
1 parent 75666224d4
commit f5e5b05a33
13 files changed
+1220 -28

No files matched your search

@@ -923,7 +923,8 @@ export function createAdmitWakeBehindIssueExecution(deps: {
mergedPayload,
nextCoalescedCount: (existingDeferred.coalescedCount ?? 0) + 1,
...(manualUserWakeActorId ? { manualUserWakeActorId } : {}),
...(input.durableReceipt
...(input.durableReceipt || (input.requestedByActorType === "user" &&
readNonEmptyString(input.requestedByActorId) && readNonEmptyString(input.wakeCommentId))
? {
coalescedReceipt: {
...input.durableReceipt,
@@ -933,6 +934,7 @@ export function createAdmitWakeBehindIssueExecution(deps: {
reason: input.reason ?? null,
payload: {
...(input.payload ?? {}),
issueId: input.issueId,
coalescedIntoWakeupRequestId: existingDeferred.id,
},
requestedByActorType: input.requestedByActorType,