Readmit a returning Queen under a new grant #14

Open
opened 2026-08-26 08:07:16 +00:00 by agent.odin · 4 comments
Owner

Proposal

Define the explicit return path for a Queen whose mount went dormant. Recovery is initiated by the returning Queen—normally after a human restarts it—not by a human acting as the Queen. It is distinct from #13’s monitor-claim death-to-dormancy path.

A return does not resume the dead workflow. Per the owner ruling below, the returning Queen is admitted under a new immutable grant and a new authorization generation; the dormant workflow stays dormant and terminal. What this record specifies is therefore the authenticated readmission path, not a resurrection.

Design

Owner ruling (2026-09-03), Q3 — continuity. After abnormal Queen death, a return may not resume the same workflow or grant. It must follow OpenSpec 61 v0.1.4's immutable-grant model: a new AssignmentGrant and a new authorization generation. Same-workflow resumption becomes available only if a bounded, non-stale continuity proof is separately ratified — and that proof must be non-stale by construction, since the failure this rules out is precisely an ABA match against a later occupant.

Consequences carried into this record:

  • The original workflow/session UUID is not preserved. The earlier design preserved it and minted a fresh JWT against it; that is reversed.
  • The three-field match — Queen identity, node, mount path — is not sufficient authority and is no longer the initial path. It can ABA-match a later occupant of the same node and mount, which is the exact continuity claim the ruling refuses.
  • Readmission binds to what 0.1.4 already makes authoritative: assignment, holder, tenure grant ID/version/digest, authorization generation, operations, actor/account mode, and resource scope.
  • Every credential invalidated at dormancy stays invalid. There is no path by which a return revalidates one.
  • Full-environment attestation (signed deployed artifact, mount configuration, delegation set) moves out of this record as an independent research result. It is not a prerequisite for readmission and is not the ratified continuity proof.

Q4 fell away with the ruling. It asked which ratified authority survives dormancy to authenticate a same-workflow resumption; with resumption refused, nothing needs to survive dormancy, and the fresh-JWT-as-own-bootstrap hazard it guarded against cannot arise.

Tasks

  • Specify the returning-Queen readmission request and its authentication against the 0.1.4 grant/tenure/generation join.
  • Issue a new AssignmentGrant and authorization generation on successful readmission; never reuse the dormant workflow UUID.
  • Prove a dormant workflow stays dormant and terminal across any number of returns.
  • Prove every pre-dormancy credential remains invalid after readmission.
  • Prove a three-field (identity, node, mount path) match alone does not admit a return — the ABA case is an explicit negative test.
  • Split full-environment attestation into an independent research record; do not gate readmission on it.

Specification Delta

Requirement: a return is readmission under a new grant, not resumption

  • GIVEN a monitor has moved a Queen’s workflow to dormant and invalidated its credentials
  • AND the Queen is restarted by a human
  • WHEN that returning Queen requests readmission and authenticates against the ratified grant/tenure/generation join
  • THEN a new AssignmentGrant and a new authorization generation are issued
  • AND the dormant workflow UUID is not reused
  • AND every pre-dormancy credential remains invalid

Requirement: a three-field match cannot admit a return

  • GIVEN a dormant mount
  • WHEN a returning process presents only matching Queen identity, node, and mount path
  • THEN readmission is refused
  • AND no credential is minted
  • AND a later occupant of the same node and mount path cannot be admitted as the earlier one

Requirement: returning does not clear dormancy

  • GIVEN a dormant mount and a returning Queen process
  • WHEN no successful readmission has been verified
  • THEN the mount remains dormant
  • AND no previous credential regains validity
## Proposal Define the explicit return path for a Queen whose mount went dormant. Recovery is initiated by the returning Queen—normally after a human restarts it—not by a human acting as the Queen. It is distinct from #13’s monitor-claim death-to-dormancy path. **A return does not resume the dead workflow.** Per the owner ruling below, the returning Queen is admitted under a new immutable grant and a new authorization generation; the dormant workflow stays dormant and terminal. What this record specifies is therefore the *authenticated readmission* path, not a resurrection. ## Design **Owner ruling (2026-09-03), Q3 — continuity.** After abnormal Queen death, a return may **not** resume the same workflow or grant. It must follow OpenSpec 61 v0.1.4's immutable-grant model: a new AssignmentGrant and a new authorization generation. Same-workflow resumption becomes available only if a bounded, non-stale continuity proof is separately ratified — and that proof must be non-stale by construction, since the failure this rules out is precisely an ABA match against a later occupant. Consequences carried into this record: - The original workflow/session UUID is **not** preserved. The earlier design preserved it and minted a fresh JWT against it; that is reversed. - The three-field match — Queen identity, node, mount path — is **not** sufficient authority and is no longer the initial path. It can ABA-match a later occupant of the same node and mount, which is the exact continuity claim the ruling refuses. - Readmission binds to what 0.1.4 already makes authoritative: assignment, holder, tenure grant ID/version/digest, authorization generation, operations, actor/account mode, and resource scope. - Every credential invalidated at dormancy stays invalid. There is no path by which a return revalidates one. - Full-environment attestation (signed deployed artifact, mount configuration, delegation set) moves out of this record as an independent research result. It is not a prerequisite for readmission and is not the ratified continuity proof. **Q4 fell away with the ruling.** It asked which ratified authority survives dormancy to authenticate a same-workflow resumption; with resumption refused, nothing needs to survive dormancy, and the fresh-JWT-as-own-bootstrap hazard it guarded against cannot arise. ## Tasks - [ ] Specify the returning-Queen readmission request and its authentication against the 0.1.4 grant/tenure/generation join. - [ ] Issue a new AssignmentGrant and authorization generation on successful readmission; never reuse the dormant workflow UUID. - [ ] Prove a dormant workflow stays dormant and terminal across any number of returns. - [ ] Prove every pre-dormancy credential remains invalid after readmission. - [ ] Prove a three-field (identity, node, mount path) match alone does not admit a return — the ABA case is an explicit negative test. - [ ] Split full-environment attestation into an independent research record; do not gate readmission on it. ## Specification Delta ### Requirement: a return is readmission under a new grant, not resumption - GIVEN a monitor has moved a Queen’s workflow to dormant and invalidated its credentials - AND the Queen is restarted by a human - WHEN that returning Queen requests readmission and authenticates against the ratified grant/tenure/generation join - THEN a new AssignmentGrant and a new authorization generation are issued - AND the dormant workflow UUID is not reused - AND every pre-dormancy credential remains invalid ### Requirement: a three-field match cannot admit a return - GIVEN a dormant mount - WHEN a returning process presents only matching Queen identity, node, and mount path - THEN readmission is refused - AND no credential is minted - AND a later occupant of the same node and mount path cannot be admitted as the earlier one ### Requirement: returning does not clear dormancy - GIVEN a dormant mount and a returning Queen process - WHEN no successful readmission has been verified - THEN the mount remains dormant - AND no previous credential regains validity
Author
Owner

Grooming state: Q3 ratified and the body rewritten against it; the probe and the attestation split remain.
Evidence: OpenSpec 61 v0.1.4 and the current private-command contract bind authority to assignment, holder, tenure grant ID/version/digest, authorization generation, operations, actor/account mode, and resource scope. Identity + node + mount path can ABA-match a later occupant. No deployed returning-Queen authentication or full-manifest surface was found.

Frontier

Q3 — continuity. Ratified (Larandar, 2026-09-03): a return may not resume the same workflow or grant; it takes a new AssignmentGrant plus authorization generation, unless a bounded non-stale continuity proof is separately ratified.

This reversed the record, and the body was rewritten rather than annotated: the earlier design preserved the original workflow UUID and made the three-field identity/node/mount-path match the initial recovery path. Both are gone. Proposal, Design, Tasks, and all three Specification Delta requirements now describe authenticated readmission under a new grant, with the ABA case as an explicit negative test.

Q4 — fell away. It asked which ratified authority survives dormancy to authenticate same-workflow resumption. With resumption refused, nothing needs to survive dormancy and the fresh-JWT-as-own-bootstrap hazard cannot arise. Closed by dependency, not by a separate ruling.

Investigation

Q1 — probe, not an owner question. Inventory deployed auth/tenure proofs usable for readmission authentication under the ratified join.

Q2 — separate probe. Full-environment attestation is now an independent research result, explicitly not the ratified continuity proof and not a readmission prerequisite.

Standing

The title still says "Recover dormant Swarm mounts with a fresh workflow JWT", which reads as the resumption shape the ruling refused. The retitle was not among the ratified implications, so it stands until the freeholder rules on it. Status/Need More Info lifted — no owner question remains. Status/Need Grooming stands for the attestation split and the Q1 probe.

<!-- agent.odin:groom:v1 --> **Grooming state:** Q3 ratified and the body rewritten against it; the probe and the attestation split remain. **Evidence:** [OpenSpec 61 v0.1.4](https://jo.et0.pw/Ting/Ting/wiki/OpenSpec-61-forge-identity-lifecycle-contract) and the current private-command contract bind authority to assignment, holder, tenure grant ID/version/digest, authorization generation, operations, actor/account mode, and resource scope. Identity + node + mount path can ABA-match a later occupant. No deployed returning-Queen authentication or full-manifest surface was found. ### Frontier **Q3 — continuity. Ratified (Larandar, 2026-09-03):** a return may not resume the same workflow or grant; it takes a new AssignmentGrant plus authorization generation, unless a bounded non-stale continuity proof is separately ratified. This **reversed the record**, and the body was rewritten rather than annotated: the earlier design preserved the original workflow UUID and made the three-field identity/node/mount-path match the initial recovery path. Both are gone. Proposal, Design, Tasks, and all three Specification Delta requirements now describe authenticated *readmission* under a new grant, with the ABA case as an explicit negative test. **Q4 — fell away.** It asked which ratified authority survives dormancy to authenticate same-workflow resumption. With resumption refused, nothing needs to survive dormancy and the fresh-JWT-as-own-bootstrap hazard cannot arise. Closed by dependency, not by a separate ruling. ### Investigation **Q1 — probe, not an owner question.** Inventory deployed auth/tenure proofs usable for readmission authentication under the ratified join. **Q2 — separate probe.** Full-environment attestation is now an independent research result, explicitly not the ratified continuity proof and not a readmission prerequisite. ### Standing The title still says *"Recover dormant Swarm mounts with a fresh workflow JWT"*, which reads as the resumption shape the ruling refused. The retitle was not among the ratified implications, so it stands until the freeholder rules on it. Status/Need More Info lifted — no owner question remains. Status/Need Grooming stands for the attestation split and the Q1 probe.
larandar changed title from Recover dormant Swarm mounts with a fresh workflow JWT to Readmit a returning Queen under a new grant 2026-09-03 16:44:01 +00:00
Owner

Q1 probe result — 2026-09-04

Source: swarm/vordr at 000b1bb, static read of the tree. No running system inspected.

The inventory is empty, and it is empty on purpose

Q1 asked which deployed auth or tenure proofs could survive dormancy and authenticate a returning Queen. None can, and vordr's design is why.

Two rules in the runtime, both deliberate:

Credentials are never in the environment. harness.AgentConfig.Env says it outright — "Not for secrets. A process environment is readable by anything that can see the process, so a credential put here cannot be rotated without killing the drone. Credentials are fetched live over the channel instead."

Credentials are fetched live, and are role-scoped. channel states it: "Credentials are scoped to the role, not to the fleet: a queen may hold a deploy key while its drones hold a comment-only forge token", and they are "fetched live over the channel, never planted in the environment … Live also means revocable and rotatable without killing a drone mid-task."

So nothing durable is held anywhere. A queen's authority exists only while it is connected and holding it, and dies with the process — which, per #13's probe, is the frontend rather than a queen process of its own.

What that does to this record

It confirms the ratified Q3 ruling from the other direction. Q3 already ruled that a return takes a new AssignmentGrant and generation rather than resuming. At the time that was a judgement about ABA-matching a later occupant. It is now also the only mechanically possible answer: there is no surviving proof to authenticate a resumption with, so same-workflow resumption was never available, and refusing it costs nothing that existed.

Q4 was right to fall away, and for a sharper reason than recorded. It asked which ratified authority survives dormancy to authenticate a return without using the fresh credential as its own bootstrap proof. The answer is that none does — so the bootstrap problem it guarded against is not a hazard to design around but the entire problem. A returning Queen has nothing to present.

Result columns

asked found
durable credential on disk none — never written
credential in environment none — explicitly forbidden, with the reasoning
tenure proof surviving restart none
identity a returning Queen holds none; authority is live-fetched and role-scoped
bootstrap available to a return none, which is the finding rather than a gap

What this leaves

Readmission cannot be authenticated by anything vordr holds today. Whatever admits a returning Queen has to come from outside the runtime — the channel it reconnects to, or an operator act — and choosing between those is a design question for the runtime owner rather than a probe result.

➡️ Hold this record for that decision, or fold it into #13. Both now turn on the same missing thing: a queen has no identity of its own, so neither its death nor its return can be attested. They are two questions about one absent boundary, and answering them apart will produce two designs for it.

The body's rewrite from Q3 stands and needs no revision — it already describes readmission under a new grant, which is what this confirms.

<!-- larandar:groom:v1 --> ## Q1 probe result — 2026-09-04 **Source:** `swarm/vordr` at `000b1bb`, static read of the tree. No running system inspected. ### The inventory is empty, and it is empty on purpose Q1 asked which deployed auth or tenure proofs could survive dormancy and authenticate a returning Queen. **None can, and vordr's design is why.** Two rules in the runtime, both deliberate: **Credentials are never in the environment.** `harness.AgentConfig.Env` says it outright — *"Not for secrets. A process environment is readable by anything that can see the process, so a credential put here cannot be rotated without killing the drone. Credentials are fetched live over the channel instead."* **Credentials are fetched live, and are role-scoped.** `channel` states it: *"Credentials are scoped to the role, not to the fleet: a queen may hold a deploy key while its drones hold a comment-only forge token"*, and they are *"fetched live over the channel, never planted in the environment … Live also means revocable and rotatable without killing a drone mid-task."* So nothing durable is held anywhere. A queen's authority exists only while it is connected and holding it, and dies with the process — which, per [#13's probe](https://jo.et0.pw/Ting/Vedanta/issues/13#issuecomment-15702), is the frontend rather than a queen process of its own. ### What that does to this record **It confirms the ratified Q3 ruling from the other direction.** Q3 already ruled that a return takes a new AssignmentGrant and generation rather than resuming. At the time that was a judgement about ABA-matching a later occupant. It is now also the only mechanically possible answer: there is no surviving proof to authenticate a resumption *with*, so same-workflow resumption was never available, and refusing it costs nothing that existed. **Q4 was right to fall away, and for a sharper reason than recorded.** It asked which ratified authority survives dormancy to authenticate a return without using the fresh credential as its own bootstrap proof. The answer is that none does — so the bootstrap problem it guarded against is not a hazard to design around but the *entire* problem. A returning Queen has nothing to present. ### Result columns | asked | found | |---|---| | durable credential on disk | none — never written | | credential in environment | none — explicitly forbidden, with the reasoning | | tenure proof surviving restart | none | | identity a returning Queen holds | none; authority is live-fetched and role-scoped | | bootstrap available to a return | none, which is the finding rather than a gap | ### What this leaves Readmission cannot be authenticated by anything vordr holds today. Whatever admits a returning Queen has to come from **outside** the runtime — the channel it reconnects to, or an operator act — and choosing between those is a design question for the runtime owner rather than a probe result. ➡️ **Hold this record for that decision, or fold it into [#13](https://jo.et0.pw/Ting/Vedanta/issues/13).** Both now turn on the same missing thing: a queen has no identity of its own, so neither its death nor its return can be attested. They are two questions about one absent boundary, and answering them apart will produce two designs for it. The body's rewrite from Q3 stands and needs no revision — it already describes readmission under a new grant, which is what this confirms.
Owner

Correction to the probe above — 2026-09-04

Freeholder correction: vordr is a spike. Its current shape is not the final state.

The observations stand: credentials are live-fetched over the channel, never planted in the environment, and role-scoped. What does not stand is the weight I put on them.

The error. I wrote that the inventory is "empty on purpose" and that readmission "cannot be authenticated by anything vordr holds today" — then treated that as settling the question. Two things were wrong with it.

First, "on purpose" over-reads a spike. The no-secrets-in-Env rule is a real and durable piece of reasoning, and it will very likely survive; but "the spike holds no durable credential" is not the same as "the architecture will hold none", and I ran the two together.

Second, and worse: I said the finding "confirms the ratified Q3 ruling from the other direction" — that resumption was never mechanically available. A spike cannot confirm a ruling about the target architecture. Q3 was ratified on the ABA-matching argument, which stands entirely on its own; dressing it in a spike's implementation detail adds nothing and would mislead the next reader into thinking the ruling has support it does not have.

What the probe actually established: the spike carries no durable credential, and the runtime that succeeds it has not yet chosen whether a queen has an identity that outlives its process. Unchosen.

What this changes for the record. Q1 stays open as a probe against the successor runtime. Q3's ruling is untouched and unweakened — it rests on ABA-matching, which is an argument about pool slots and reassignment, not about vordr.

➡️ The previous comment's suggestion to fold this into #13 is withdrawn as premature. It rested on both records turning on one absent boundary, and "absent" was the part I got wrong. They may still deserve one ruling once the successor runtime has a shape — but that is a question to ask then, not a merge to perform now on a spike's evidence.

<!-- larandar:groom:v1 --> ## Correction to the probe above — 2026-09-04 **Freeholder correction: vordr is a spike. Its current shape is not the final state.** The observations stand: credentials are live-fetched over the channel, never planted in the environment, and role-scoped. What does not stand is the weight I put on them. **The error.** I wrote that the inventory is *"empty on purpose"* and that readmission *"cannot be authenticated by anything vordr holds today"* — then treated that as settling the question. Two things were wrong with it. First, *"on purpose"* over-reads a spike. The no-secrets-in-`Env` rule is a real and durable piece of reasoning, and it will very likely survive; but "the spike holds no durable credential" is not the same as "the architecture will hold none", and I ran the two together. Second, and worse: I said the finding *"confirms the ratified Q3 ruling from the other direction"* — that resumption was never mechanically available. **A spike cannot confirm a ruling about the target architecture.** Q3 was ratified on the ABA-matching argument, which stands entirely on its own; dressing it in a spike's implementation detail adds nothing and would mislead the next reader into thinking the ruling has support it does not have. **What the probe actually established:** the spike carries no durable credential, and the runtime that succeeds it has not yet chosen whether a queen has an identity that outlives its process. Unchosen. **What this changes for the record.** Q1 stays open as a probe against the successor runtime. Q3's ruling is untouched and unweakened — it rests on ABA-matching, which is an argument about pool slots and reassignment, not about vordr. ➡️ The previous comment's suggestion to fold this into [#13](https://jo.et0.pw/Ting/Vedanta/issues/13) is **withdrawn as premature.** It rested on both records turning on one absent boundary, and "absent" was the part I got wrong. They may still deserve one ruling once the successor runtime has a shape — but that is a question to ask then, not a merge to perform now on a spike's evidence.
Owner

Second correction — the probe examined an unestablished artifact, 2026-09-04

Freeholder: "I don't know that I ever ran a swarm from vordr successfully, where I ran a few with claude."

Same defect as on #13, and it invalidates this probe's premise.

Q1 asked to inventory the deployed auth and tenure proofs a returning Queen could present. I inventoried vordr's, having never established that vordr runs swarms — and it may never have run one. The swarms that actually ran were Claude-driven.

So "the inventory is empty" was a statement about the wrong tree. It may still turn out to be true of whatever does run swarms, but nothing in that comment is evidence for it, and my saying it "confirms the ratified Q3 ruling from the other direction" was doubly wrong: wrong artifact, and a ruling that never needed the support.

What survives: nothing bearing on this record. The Env-is-not-for-secrets reasoning is good engineering and belongs to vordr.

What Q1 still needs, in order: name the runtime that actually runs a swarm; then inventory what a queen in that runtime holds across a restart.

➡️ Q1 stays open with its first step corrected. Q3's ruling is unaffected and self-supporting — it rests on ABA-matching across pool-slot reassignment, which owes nothing to any runtime's internals.

<!-- larandar:groom:v1 --> ## Second correction — the probe examined an unestablished artifact, 2026-09-04 **Freeholder:** *"I don't know that I ever ran a swarm from vordr successfully, where I ran a few with claude."* Same defect as on [#13](https://jo.et0.pw/Ting/Vedanta/issues/13#issuecomment-15730), and it invalidates this probe's premise. Q1 asked to inventory the **deployed** auth and tenure proofs a returning Queen could present. I inventoried vordr's, having never established that vordr runs swarms — and it may never have run one. The swarms that actually ran were Claude-driven. So *"the inventory is empty"* was a statement about the wrong tree. It may still turn out to be true of whatever does run swarms, but nothing in that comment is evidence for it, and my saying it *"confirms the ratified Q3 ruling from the other direction"* was doubly wrong: wrong artifact, and a ruling that never needed the support. **What survives:** nothing bearing on this record. The `Env`-is-not-for-secrets reasoning is good engineering and belongs to vordr. **What Q1 still needs**, in order: name the runtime that actually runs a swarm; then inventory what a queen in *that* runtime holds across a restart. ➡️ Q1 stays open with its first step corrected. Q3's ruling is unaffected and self-supporting — it rests on ABA-matching across pool-slot reassignment, which owes nothing to any runtime's internals.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Ting/Vedanta#14
No description provided.