Repository navigation
Conversation
tee8z
added this pull request to stack #5
October 9, 2026 17:12
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 19, 2026 15:09
d2a8893 to
15b9a39
Compare
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 19, 2026 17:36
15b9a39 to
94ba3a7
Compare
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 19, 2026 20:52
94ba3a7 to
6fc287a
Compare
tee8z
removed this pull request from stack #5
October 19, 2026 20:53
tee8z
changed the base branch from
dev-2884-pilot-launch-taylor-signing
to
dev-2884-explicit-stop
October 19, 2026 20:54
tee8z
added this pull request to stack #22
October 19, 2026 20:56
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 19, 2026 23:28
6fc287a to
d28419c
Compare
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 20, 2026 14:53
d28419c to
34f2cc7
Compare
tee8z
removed this pull request from stack #22
October 20, 2026 14:56
tee8z
added this pull request to stack #26
October 20, 2026 14:56
This was referenced Oct 20, 2026
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 20, 2026 15:01
34f2cc7 to
a42d6be
Compare
Collaborator
Author
|
@coderabbitai full review Please review the current revision against this PR’s immediate stack base. The descriptions document the remote-agent scope, regression coverage, and outstanding runtime validation. |
|
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 20, 2026 15:35
a42d6be to
d81f58d
Compare
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 20, 2026 16:24
d81f58d to
c6769f3
Compare
tee8z
removed this pull request from stack #26
October 20, 2026 16:24
tee8z
added this pull request to stack #28
October 20, 2026 16:25
An ended session is resumed only when the desktop sends
provider_config.sandbox.recovery for one click: {"mode":"checkpoint"}
restores the tombstone's verified checkpoint, {"mode":"fresh"} starts
with an empty workspace. Recovery is refused on anything that is not an
Ended, Suspended tombstone, so a live workspace is never discarded, and
checkpoint mode is refused when the tombstone has no checkpoint key.
Before it deletes the tombstone, the provider preserves it in an
immutable <sandbox>-recovery journal Secret without an owner reference.
Journal validation checks object identity and ownership. A retry
resumes from the journal after an interrupted delete/create; an ordinary
deploy refuses an unfinished recovery. Deletion uses uid and
resourceVersion preconditions, and recovery waits for the old owned Pod
to disappear (including its 240-second drain grace) before it creates
the replacement under a new generation with recovered-from. The journal
is removed once the replacement is bound.
Signed-off-by: Tee8z <tee8z@protonmail.com>
tee8z
force-pushed
the
dev-2884-agent-provider-lifecycle
branch
from
October 20, 2026 16:51
c6769f3 to
b404b95
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An ended Agent Sandbox session must resume only on explicit user action, and recovery must never discard a live workspace.
This PR adds
provider_config.sandbox.recovery, which the desktop sends once per click.{"mode":"checkpoint"}restores the tombstone's verified checkpoint.{"mode":"fresh"}starts with an empty workspace.sequenceDiagram participant P as Provider deploy participant S as Sandbox participant J as Journal Secret participant O as Old Pod P->>S: GET Sandbox, or load the journal if no Sandbox exists Note over P: verify identity, require ended and Suspended, read generation and checkpoint key P->>J: CREATE immutable Secret with tombstone.json and no ownerReference (or reuse a matching journal) P->>S: DELETE with uid and resourceVersion preconditions loop every 1 s, until 300 s P->>S: GET until the old uid is gone P->>O: GET until no Pod owned by the old Sandbox exists end P->>S: CREATE Sandbox with a new generation and recovered-from P->>S: Bind the first Pod and write the launch Secret P->>J: DELETE with uid and resourceVersion preconditionsThe 300 s wait is the 240 s Pod termination grace plus 60 s for the controller and garbage collection.
In checkpoint mode, the new Sandbox has
restore-checkpoint, and the launch Secret setsBUZZ_CHECKPOINT_RESTORE_KEY.The journal Secret is named
<sandbox>-recovery, uses typebuzz.block.xyz/sandbox-recovery-v1, and holds no private key.The provider deletes the journal only after the replacement binds, and only if the journal records the replaced generation.
recoveryon a live or ending Sandboxrecovery requires an ended session; this Sandbox is still active, so end it firstcheckpointmode, tombstone has no checkpoint keythis session has no verified checkpoint; start fresh insteadcheckpointmode, no Sandbox and no journalno ended session exists for this thread to recover; start fresh insteadrecoverySandbox recovery was interrupted; explicit recovery is requiredinvalid Sandbox recovery journal; retain it for operator recoverya foreign Pod occupies the recovered Sandbox name; retain the recovery journal for operator cleanupstopnow refuses a request withrecovery. An unknown mode is refused before any cluster contact (deploy-sandbox-bad-recoveryfixture).Sandbox Pods use the same 300-second shutdown budget as ordinary agent Pods, and stop waits for that budget before treating termination as overdue.
Stack
Position 13 of 22. Base: #16. Next: #17. Each PR contains one signed commit. #27 fixes the existing message-edit CI failure. #24 and #25 repair fork CI and security prerequisites; the feature layers remain scoped to remote agents.
Validation
mesh-llm. The final integrated revision includes the message-edit fix and Secret retry regressions. Full localjust ciand updated GitHub checks are in progress; the previous local run stopped at a missing host Opus library, now supplied by the validation environment.Limits
The live controller test simulates the reaper tombstone. It does not exercise an actual checkpoint upload or restore.
Human workflow confirmation is still required by AGENTS.md before readiness. Human acceptance has not been confirmed.