Skip to content

Commit d4fd9be

Browse files
committed
docs: guard remote exceptions and capacity policy
1 parent b60fa61 commit d4fd9be

17 files changed

Lines changed: 446 additions & 175 deletions

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,9 @@ All notable Vitheim changes are documented here. The format follows
9595
immutable validator without pretending to be locally fenced, while capacity
9696
transfer freezes its complete accounting hierarchy, lane, class, residency,
9797
and authorization lineage.
98+
- Closed the remaining unconditional-mutation and capacity-class escape hatches
99+
without new versions: reviewed unconditional mutations now redeem a one-owner,
100+
revocable, attempt-bounded guarded exception, while existing capacity classes
101+
are immutable and only future unallocated parent capacity can be resized by a
102+
fenced, simulated, separation-of-duties policy that preserves protected floors.
98103
- Added local and GitHub verification gates without a crate publication path.

docs/ARCHITECTURE.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,11 @@ authorization semantics.
109109
The provider enforces the precondition after local commit; failure is typed
110110
non-acceptance, never silent validator refresh. Privileged/destructive/
111111
containment work requires strong conditional mutation unless an exact,
112-
expiring reviewed unconditional exception applies. Response loss remains
113-
unknown and reconciling.
112+
expiring reviewed unconditional exception applies. That exception is first-
113+
class one-owner authority binding exact scope, approvals, policy/provider
114+
epochs, time, and attempts; a co-located guard serializes revocation,
115+
supersession, capability change, and attempt claims while dispatch advances
116+
only the effect stream. Response loss remains unknown and reconciling.
114117
Each effect carries a bounded atomic set of typed quota claims rather than
115118
one universal reservation. Concurrency releases with its local lease;
116119
consumable operations follow declared evidence rules; provider-rate tokens
@@ -140,12 +143,15 @@ authorization semantics.
140143
and late evidence retains the original claim/transfer lineage. Transfer also
141144
freezes accounting owner, hierarchy root/parent lease, period, work/recovery
142145
lane, capacity class, residency/region, and source/destination authorization.
143-
Ordinary transfer cannot reclassify emergency or recovery capacity as
144-
business capacity; cross-class movement requires a distinct audited
145-
adjustment.
146+
Existing capacity never changes class; protected-to-business transitions are
147+
structurally invalid regardless of privilege. Only future unallocated parent
148+
capacity may be resized by a versioned, simulated, separation-of-duties
149+
`QuotaCapacityPolicy` change that preserves protected floors. Every delayed
150+
transfer transition rechecks its current local tenant, principal, and policy
151+
epochs; historical decisions are evidence, not authority.
146152
Composite transactions acquire stream head, authority fences, target fence,
147-
grant guard, quota lease/keys, uniqueness claims, then receipts in one
148-
canonical order.
153+
remote-mutation-exception guard, grant guard, quota lease/keys, uniqueness
154+
claims, then receipts in one canonical order.
149155
Only classified deadlocks receive bounded, identity-preserving retries.
150156
Compensation is accounted separately. Tenant/work-class
151157
partitioning, fair share, ceilings, starvation bounds, and a scoped emergency

docs/IMPLEMENTATION_PLAN.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,10 @@ validator kind/bytes/strength/provenance/time, admitted provider capability,
9898
request digest, and idempotency key. Precondition failure is typed non-
9999
acceptance and cannot trigger automatic validator refresh; privileged,
100100
destructive, and containment work requires a strong validator unless a narrow
101-
reviewed unconditional exception applies. Response loss stays unknown.
101+
reviewed unconditional exception applies. The exception is one-owner,
102+
revocable, scoped, expiring, provider/policy-versioned, and attempt-bounded; a
103+
co-located guard serializes revocation/capability change/final-attempt use while
104+
dispatch advances only the effect stream. Response loss stays unknown.
102105
Each effect carries a bounded atomic set of typed quota claims with independent
103106
amount/unit, settlement policy, and admission/lease/dispatch/transmission/
104107
storage boundary. Concurrency releases with the local lease; operation, rate,
@@ -128,10 +131,15 @@ entry recovery never exposes capacity at both ends; late evidence retains its
128131
original claim/transfer lineage. Transfer freezes accounting owner, hierarchy
129132
root/parent lease, period, work/recovery lane, capacity class, residency/region,
130133
and authorization decisions. Ordinary transfer cannot cross tenant, hierarchy,
131-
period, lane, class, or residency; cross-class movement is a separate authorized
132-
audited adjustment.
134+
period, lane, class, or residency. Existing capacity never changes class, and
135+
protected-to-business conversion has no privileged escape hatch. Only future
136+
unallocated parent capacity may be resized through versioned, simulated,
137+
separation-of-duties `QuotaCapacityPolicy` activation that preserves protected
138+
floors. Delayed transfer steps recheck current local tenant, principal, and
139+
policy epochs.
133140
Composite transactions use one order—stream head, authority fences, target
134-
fence, grant guard, quota lease/keys, uniqueness claims, then receipts—and retry only
141+
fence, remote-mutation-exception guard, grant guard, quota lease/keys,
142+
uniqueness claims, then receipts—and retry only
135143
classified deadlocks under a bounded identity/digest/version-preserving policy.
136144
Tenant/work-class
137145
partitioning, fair share, ceilings, starvation bounds, and a scoped emergency
@@ -167,7 +175,9 @@ bounded quota-claim kinds/boundaries/settlement, exact-set token/digest/
167175
linearization, quota partition/capacity-lease/encumbrance-transfer topology,
168176
target-fence owner/epoch/co-location/placement, receipt-idempotent capacity-
169177
transfer delivery/conservation/classification, remote-target concurrency
170-
profile/provider capability/precondition outcome, canonical composite lock/retry behavior,
178+
profile/provider capability/precondition outcome, remote-mutation-exception
179+
owner/guard/attempt, capacity-policy/floor/simulation/current-transition
180+
authority, canonical composite lock/retry behavior,
171181
refund/write-off evidence, and
172182
compensation/recovery-capacity behavior.
173183

0 commit comments

Comments
 (0)