Allow a principal to take a provisioned seat — the queen-seat half of allocation (ruling D2b) #50
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#50
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
Implement the runtime seat-taking effect: a private, validated Vedanta command that allows a principal to take a provisioned seat (
swarm-alpha/queenfor swarm X), records the tenure, releases it on handover, and serves the active tenure to OpenBao.Why
Ruling D2b (Larandar, 2026-09-05, in-session): "provisioning makes the SEAT available, and Vedanta CAN ALLOW a principal to take the seat." The drone-slot half of allocation exists (
src/checkout.rs, Session #31). The queen-seat half exists nowhere: no command takes a seat, no ledger records a tenure, andGET /v1/lifecycle/projection/{grant}(Session #47) answersactive_queen_tenures: []by construction, so OpenBao'sSeatTenurestage denies every drone lease. That is the correct fail-closed state and it is why this Deliverable gates the pilot.Design
LifecycleCommand:SeatCommand { operation_id, action: take|release, seat (assignment id), holder (principal ref), tenure_grant (GrantRef), authorization_generation, forge_actor, valid_until }, same envelope, signature, peer and freshness rules asprivate_api, validated against the deployed seat grant projection (the seat's ownAssignmentGrant, canonicalassignment-grant.seat.example.yaml).releaseof the former tenure is journaled and effective before atakeof a distinct successor tenure is accepted; a seat with an active tenure refuses a secondtake; the no-holder interval denies./var/lib/vedanta/(append-only, like the operations journal), identifiers only.Service::active_tenures(seat)reads the ledger; the projection route serves it asactive_queen_tenures.Tasks
SeatCommandand its validation order (peer, signature, window, freshness, seat grant active + digest, holder is an eligible principal, generation, no concurrent holder).take/release.active_queen_tenuresfrom the ledger.takewhile held,takebeforereleasein handover, stale generation, unratified seat grant, stranger peer.Specification Delta
Requirement: exactly one holder, and none between tenures
Scenario: handover from queen A to queen B
swarm-alpha/queentakeis validatedStructural parent
#46 (D2b); sibling of #47. Contract delta: Ting/contracts#10.
Provenance
Filed by the queen session of the 2026-09-05 delivery run (Claude Code, harness ba993052).