Commit Graph
3 Commits
Author SHA1 Message Date
NeilandOrca 8480d8f26d docs(terminal): record that a guard must be pinned at its call site
A refusal that exists and is never passed is indistinguishable from no
refusal, and store-level tests cannot tell the difference — they call the
store directly. Learned from `mayCreate`, which was correct and had no
production caller for several commits.

Co-authored-by: Orca <help@stably.ai>
2026-08-08 19:11:53 -07:00
NeilandOrca 0960a4c911 docs(terminal): record what makes a retention bound safe
Shortening a grace period is the wrong lever. Measuring process time and
gating reclamation on an independent observation are what make one safe,
and they are what deployed systems actually do.

Also records that lifecycle belongs in the attach reply rather than a
delivered event — that is what removes the need for a durable per-consumer
cursor to guarantee an exit is never lost.

Co-authored-by: Orca <help@stably.ai>
2026-08-08 19:11:34 -07:00
NeilandOrca 9177022505 docs(terminal): record the terminal session behavior contract
Properties stated as observable behavior rather than mechanism, so an
oracle written against them survives a change of implementation.

Records the weaker, correct form of the timer rule — a timer may never
be the sole cause of a destructive action — because recovery budgets and
scratch-file age gates are correct code that an absolute ban would
condemn. Also notes which mechanisms are deliberately not required, so
each has to earn its place rather than arrive with an architecture.

Co-authored-by: Orca <help@stably.ai>
2026-08-08 19:11:07 -07:00