KB-6C2F

O8C real-DB rollback-only proof readiness (Contabo) — 05-real-db-rollback-proof-result

6 min read Revision 1
dieu44iu-cutterv0.6o8creal-db-rollback-proofmilestone-ratifylive-execution-wiringcontabo

O8C Report 05 — Real-DB rollback-only proof result (G4)

  • macro: v0.6-o8c-real-db-rollback-proof-readiness
  • date_utc: 2026-05-21 · host: vmi3080463 (Contabo) · Python 3.12.3
  • gate covered: G4 execute rollback-only proof
  • result: G4 PASS — O8C_REAL_DB_ROLLBACK_PROOF ALL_PROOFS_PASS

Harness: iu-cutter-v0.6-o8c-sidecar/o8c_rollback_proof.py — imports cutter_agent from the deployed 703559c tree; connects to the live directus DB as the genuine cutter_exec / cutter_verify roles.

1. Proof results — 9 / 9 PASS

PROOF-1  PASS  kill-switch OFF — execution_enabled()=False __execution_enabled__=False
PROOF-2  PASS  all 6 adapter methods refused before any DB connect (provider_calls=0)
PROOF-3  PASS  require_live_adapter accepts the real adapter, refuses 4/4 non-adapters
PROOF-4  PASS  adapter._connect reached REAL DB db='directus' exec_user='cutter_exec'
               verify_user='cutter_verify' server='PostgreSQL 16.13' port=5432
PROOF-5  PASS  rollback-only txn reached public.fn_iu_create (status='created');
               information_unit in-txn 158 -> 159, then ROLLBACK
PROOF-6  PASS  verify-path SQL valid on real schema — verify_result count + trigger survey
PROOF-7  PASS  all 9 mutation-surface row counts unchanged (authoritative snapshot)
PROOF-8  PASS  post-proof counts still equal the O8B-retry Report-07 baseline
PROOF-9  PASS  kill-switch STILL OFF after the proof

2. The headline — a real write, fully rolled back

The adapter's exact cut_leg_a SQL contract (SELECT public.fn_iu_create(%s × 9), parameters built with the adapter module's own _rf() helper) executed against the live production database and returned status='created' — a genuine information_unit + unit_version row pair was inserted:

in-txn  public.information_unit  158  ->  159      (real INSERT happened)
                       ROLLBACK
post    public.information_unit  159  ->  158      (fully reverted)

3. Row counts — unchanged across the proof

Authoritative full-privilege 9-table snapshot (workflow_admin, out-of-band docker exec — a process / connection wholly separate from the adapter):

Table before after O8B baseline
public.information_unit 158 158 158
public.unit_version 165 165 165
public.iu_lifecycle_log 60 60 60
cutter_governance.cut_change_set 2 2 2
cutter_governance.cut_change_set_affected_row 61 61 61
cutter_governance.manifest_envelope 2 2 2
cutter_governance.review_decision 3 3 3
cutter_governance.verify_result 2 2 2
cutter_governance.dot_pair_signature 4 4 4

Independent read-only query_pg MCP re-count confirmed information_unit=158, unit_version=165, iu_lifecycle_log=60 and probe_rows_leaked = 0 (canonical_address LIKE 'ICX-CONST/O8C-RB-PROBE%').

4. What was proven about ProductionLiveExecutionAdapter

connection_provider_seam_reaches_real_db:  YES — cutter_exec + cutter_verify,
                                           PostgreSQL 16.13, db=directus (PROOF-4)
exact_cut_leg_a_sql_contract_valid:        YES — fn_iu_create status='created' (PROOF-5)
exact_verify_path_sql_contract_valid:      YES — verify_result count + enacted-
                                           immutability trigger survey (PROOF-6)
killswitch_gates_all_6_methods:            YES — refused before any connect,
                                           even with a real DB wired (PROOF-2)
no_simulator_fallback:                     YES — require_live_adapter refuses every
                                           non-LiveExecutionAdapter (PROOF-3)
production_mutation:                       NONE — transaction ROLLBACK, 0 rows leaked
execution_enabled:                         False before AND after (PROOF-1, PROOF-9)

5. Honest scope boundary (F1 residue)

The adapter method bodies (cut_leg_a, lifecycle_enact, leg_b_record, write_verify) cannot be driven end-to-end while the kill-switch is OFF — the gate is their first line (PROOF-2). O8C therefore proved the connection seam + the exact SQL contracts they emit, not the methods executing as methods. Closing that last span requires a sovereign kill-switch flip (GAP-7) and is the remaining F1 residue (Report 06). The governance_writer / verify_writer / backup_runner collaborators still default-refuse (F3 / F4).

Observation (security-positive): cutter_exec is correctly least-privileged — it cannot SELECT cut_change_set_affected_row / verify_result; only cutter_verify / owner roles can. Not a defect.

6. G4 verdict

proof_ran:                 YES — 9/9 ALL_PROOFS_PASS
real_db_reached:           YES — live directus DB, genuine cutter roles
write_path_exercised:      YES — fn_iu_create status='created', 158->159
transaction_outcome:       ROLLBACK — never committed
row_counts_unchanged:      YES — 9/9 tables == O8B baseline; 0 probe rows leaked
adapter_no_simulator:      YES
execution_enabled:         False (before and after)
production_mutation:       NONE
g4:                        PASS
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-o8c-real-db-rollback-proof-readiness/05-real-db-rollback-proof-result.md