FABRIC-3.md §H.10: close pin-authority choke point -- session owns both directions
Decided: session_set_pinned()/session_is_pinned() (or equivalent) are the sole read AND write path for pin state -- nothing, including existing Stadium code, touches STADIUM_FLAG_PIN on the patron header directly anymore. Not just a write-side guard. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a93d4fa2cd
commit
316de60671
+7
-4
@@ -3749,10 +3749,13 @@ child each get their own separate dictionary — `DictEntry` ACL fields are alre
|
||||
scoped per-session. H.3's stack-of-cards model and H.5's word card/elevation trigger stand as
|
||||
decided, unchanged by this check.
|
||||
|
||||
Two smaller, lower-risk items flagged in the same pass, not yet acted on:
|
||||
- **Pin-authority sync risk (H.2).** Session.pinned is authoritative over Stadium's
|
||||
`STADIUM_FLAG_PIN` bit — needs a single choke-point API so nothing ever writes the Stadium
|
||||
flag directly and lets the two drift out of sync. Not yet designed.
|
||||
Two smaller, lower-risk items flagged in the same pass:
|
||||
- **CLOSED 2026-09-02 — pin-authority choke point (H.2).** Session.pinned is authoritative
|
||||
over Stadium's `STADIUM_FLAG_PIN` bit. Decided: **full choke point at the session level,
|
||||
both directions** — both writing and reading pin state go exclusively through session-owned
|
||||
functions (e.g. `session_set_pinned()` / `session_is_pinned()`); nothing, including existing
|
||||
Stadium code, reads `STADIUM_FLAG_PIN` directly off the patron header anymore. Session is
|
||||
the sole authority for both write and read, not just the write path.
|
||||
- **Elevation trigger not yet usable (H.5/H.7).** Rides Hermes messaging, which per this
|
||||
document's own standing completion criterion (D.1) isn't the real implementation yet.
|
||||
Correct on paper, not usable until that substrate exists — expected, not a flaw.
|
||||
|
||||
Reference in New Issue
Block a user