---
name: grant-erased-by-seat-edge
description: "An authorization write made at the gate is erased by a lifecycle edge that fires later in the same operation; place the write where the revoker's key says, not where the credential is known."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: c1587351-c7b6-4680-bcc6-0ec52b00df8a
  modified: 2026-08-02T10:50:15.019Z
---

BAROMETER W3 leg 2 (releases#102): I granted the admin-bring-up empowerment at the
gate, which is the only place the credential is known. Both seat-resolver rows failed.

Cause: `classify_control_edge` treats `(None, Some)` as `Dropped`, so **every** new
controller seat — not just a `--take` — fires `drop_authority_at_edge`, which is keyed
on the *session*, not on the controller. A grant written at the gate is erased by the
very attach that earned it. Fixed by moving the write after the seat ladder
(`settle_engine_room_seat`), which also stopped a refused attach from minting an
empowerment or briefing a seat nobody took.

**Why:** the gate knows the credential; the LIFECYCLE EDGE decides when the record
survives. Those are different moments, and the edge's KEY is what tells you which. A
session-keyed revoker erases anything written for that session earlier in the same
operation, however correct the authorization was.

**How to apply:** before writing an authorization record, find its REVOKER and read
what the revoker is keyed on. If the revoker's key is coarser than the thing that
authorized the write (session vs controller, endpoint vs connection), the write must
land AFTER every edge that revoker fires on — not at the point of proof. The symptom
if you get it wrong is the worst class: the operator is told they hold authority, the
record says otherwise, and only the next privileged action disagrees out loud. My own
tests caught it only because they asserted the RECORD after a real seat, not the
return value of the granting function — see [[every-return-arm-is-a-copy]] and
[[declare-site-is-not-enforce-site]]. Mutation M3 (grant at the gate) now pins it.
