Return a slot on ordinary completion without destroying its principal #36
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Meta/Campaign
Meta/Epic
Meta/Session
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Curated
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Scope/Campaign
Status/Abandoned
Status/Blocked
Status/Conflicted
Status/In Progress
Status/In Review
Status/Need Grooming
Status/Need More Info
Status/Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Reference
Ting/Vedanta#36
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Proposal
End a session cleanly: revoke what it held, rotate, advance the generation, and give the same slot back to the pool with its durable principal intact.
Delivery class
agent-unit— the completion sequence with capture doubles, including partial-failure cases.Design
Ordinary completion revokes the session capability, its leases, and its resource tokens; rotates the checkout credential; advances the generation; and returns the same
worker-<UUID>slot to the pool.The principal survives, and that is the requirement rather than an implementation detail. Deletion, suppression, tombstoning and recreation are reserved for compromise or irrecoverable retirement — a different path with different authority. A completion that destroyed the principal would make the pool disposable-identity-per-session by another name, which is exactly what the pooled model exists to avoid: a persona that looks longer-lived than any one container.
Generation advance is what makes the return observable. The generation is the correlation handle a later reader uses to tell one occupancy from the next, so it advances on return whether or not anything else about the slot changed.
Ordering matters under partial failure: a slot returned to the pool before its capability is revoked is a slot that can be allocated while its predecessor still holds authority. Revoke first, return last, and leave a partial failure visible and retryable rather than half-returned.
Tasks
Specification Delta
Requirement: the principal survives ordinary completion
Scenario: a session ends normally
Requirement: a returned slot carries nothing forward
Scenario: a slot is reused by a later session
Scenario: return fails partway
OpenSpec
OpenSpec 30 — this is the record OpenSpec 61 amendment 0.1.2 specifies directly.
Structural parent
Vedanta#31
larandar referenced this issue2026-09-03 18:25:13 +00:00