Bind a slot to a session under a new grant, and stamp the occupancy #35
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#35
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
Allocate a pool slot to a session under a fresh immutable grant, and write the occupancy onto the slot's OpenBao entity alias so the session's secret paths are its own.
Delivery class
agent-unit— allocation and the alias write, against OpenBao capture doubles.Design
Checkout binds a slot under a new immutable
AssignmentGrant, inheriting no lease, token, or authority from any previous occupancy. Reuse of a slot is not reuse of its history.The occupancy is stamped onto the slot's entity alias as
custom_metadata. This is what makes the swarm KV path per-occupancy rather than per-slot: the consumer is written and under review in flake-ops#471, renderingswarm/data/<swarm>/drones/<slot>/<assignment>/*, and that path shape is this record's acceptance.Two things a reader will otherwise get wrong, both found the expensive way:
valuesByGroup, so a claim carries only what the directory asserts about an account. Occupancy changes per allocation and has no group to hang on; one group per assignment would leak the pool's churn into the directory. Aliasmetadatais rewritten from claim mappings on every login —custom_metadatais written out of band and a login does not touch it, which is the lifetime this value needs.assignment_idis not this.QueenAuthorityRef.assignment_idnames the queen's tenure assignment that authorized a request — one value shared by every drone under a queen. It cannot separate two occupants of one slot, and a path built on it looks isolated and is not.This record does not decide when a slot is free. That gate is #37 and waits on an unresolved mechanism; allocation here presumes a slot already judged available.
Tasks
custom_metadata, not tometadataand not via a claim.Specification Delta
Requirement: occupancy is what isolates, not the slot
Scenario: two successive occupants of one slot
Requirement: a binding inherits nothing
Scenario: a slot is allocated after a previous session
OpenSpec
OpenSpec 30
Structural parent
Vedanta#31
larandar referenced this issue2026-09-03 18:25:13 +00:00