KB-5B4B
O8F implement F2/F3/GAP6 deploy+proof — 09-vps-test-proof-result
4 min read Revision 1
dieu44iu-cutterv0.6o8fvpstestsrollback-proofreal-db
O8F Report 09 — VPS test & proof result (G8)
- macro:
v0.6-o8f-implement-f2-f3-gap6-deploy-proof - date_utc: 2026-05-21 · gate: G8 — VPS tests & proofs · result: G8 PASS
1. VPS import / compile / test suite
host: Contabo vmi3080463 · Python 3.12.3
py_compile: governance_writers / compensation / discover / __init__ — OK
import smoke: cutter_agent.orchestrator imports; milestone O8B;
execution_enabled() False; governance_writers + compensation
import OK.
test suite: python3 -m unittest discover -s tests -t tests
-> Ran 471 tests — OK (exit 0). Matches the Mac run.
M1 regression: writer_digest d99a31d4a4be907c510ae15965e9f7bb3387e9e28676e9f32adf463828b1aa28
re-observed unchanged in the v0.5 recorder path.
2. Non-mutating / rollback-only proofs (real live DB, txn rolled back)
PROOF-1 F2 PASS — source_unit_texts() over the live DB returned 60
ICX-CONST units, all 60 with genuine unit_version.body text
(live titles are empty — that IS the real data). Read-only
SELECT; transaction rolled back.
PROOF-2 F3 PASS — GenericLegBRecorder.plan() N=7 and N=60 produce 7/7
and 60/60 row fan-outs (generalisation handles non-60).
Rollback-only DB probe: record() ran inside a real cutter_exec
transaction — ALL 8 cutter_governance tables ACCEPTED the
generic INSERTs (status RECORDED, cut_change_set +1 in txn) —
then ROLLED BACK; cut_change_set count returned to baseline 2.
PROOF-3 F3 PASS — GenericVerifyRecorder.plan() accepts a fresh
(non-M1) change_set UUID and produces a 64-hex payload_hash.
PROOF-4 GAP6 PASS — read-only pre-run snapshot: public baseline
158 / 165 / 60 (match). plan_compensation for cut_leg_a /
leg_b_record / write_verify / lifecycle_enact — step counts
1/3/4/5, hard_delete_default False for all four.
OVERALL: PASS (exit 0).
3. DB counts — unchanged
public.information_unit: 158 (baseline)
public.unit_version: 165 (baseline)
public.iu_lifecycle_log: 60 (baseline)
ICX-CONST units: 60 (baseline)
all proof transactions: ROLLED BACK — zero persistent mutation.
4. Finding — cutter_exec read-grant gap (non-blocking)
observed: cutter_exec can INSERT into all 8 leg-B cutter_governance tables
(proven by the rollback-only probe) but lacks SELECT on
cutter_governance.verify_result and cut_change_set_affected_row.
class: a VPS grant-provisioning detail, NOT a code defect. The generic
recorders emit schema-valid SQL. The verify-writer live path
additionally needs cutter_verify INSERT on verify_result /
dot_pair_signature — to be audited at first-run readiness.
action: folded into the G9 blocker matrix as a first-run grant-audit item.
5. Runtime / kill-switch
runtime dirs (O8E /var/lib/cutter + 7 dirs + config + README): intact
execution_enabled in deployed v0.6: False
service / cron / docker: none restarted
g8: PASS — 471/471 on the VPS; 4/4 non-mutating proofs PASS incl. a real-DB
rollback-only governance-write proof; DB counts unchanged; kill-switch
False; runtime dirs intact.