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:
Robert Allan James
2026-09-02 18:22:43 -04:00
co-authored by Claude Opus 5
parent a93d4fa2cd
commit 316de60671
+7 -4
View File
@@ -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 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. decided, unchanged by this check.
Two smaller, lower-risk items flagged in the same pass, not yet acted on: Two smaller, lower-risk items flagged in the same pass:
- **Pin-authority sync risk (H.2).** Session.pinned is authoritative over Stadium's - **CLOSED 2026-09-02 — pin-authority choke point (H.2).** Session.pinned is authoritative
`STADIUM_FLAG_PIN` bit — needs a single choke-point API so nothing ever writes the Stadium over Stadium's `STADIUM_FLAG_PIN` bit. Decided: **full choke point at the session level,
flag directly and lets the two drift out of sync. Not yet designed. 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 - **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. 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. Correct on paper, not usable until that substrate exists — expected, not a flaw.