Admin quota adjustment now takes the per-user advisory lock and a FOR UPDATE row lock on the quota account before projecting the balance, so the check covers both used and reserved amounts and stays transactionally consistent with task freeze and settlement. Settlement and lease-recovery paths also lock the quota row explicitly. Add the isolated Phase 5 exception-matrix harness (fault injection against a dedicated DB + fake upstream) covering last-quota contention, concurrent admin reduce, freeze/reduce stress, bad/oversized/timeout upstream, storage failure, cross-period settlement and queued/running restart recovery. Add test-only deps, provisioning helper (secrets via env) and test README.
7 lines
310 B
Plaintext
7 lines
310 B
Plaintext
# Test-only dependencies for services/api.
|
|
# The reliability / exception-matrix harness (tests/phase5_exception_matrix.py)
|
|
# imports only these from the runtime stack; the full runtime set is in
|
|
# requirements.txt. Pin to the versions verified in the isolated environment.
|
|
httpx==0.28.1
|
|
psycopg[binary]==3.2.9
|