O7 postdeploy live dry-run (Contabo) — 06-live-dryrun-smoke-result
O7 Report 06 — Live dry-run smoke result
- macro:
v0.6-o7-postdeploy-live-dryrun-contabo - gate: G5
- result: PASS — 14/14 checks, full closeout reached
- finished_utc: 2026-05-21T04:24:00Z
Run
python3 /opt/incomex/dot/iu-cutter-v0.6-o7-sidecar/o7_live_dryrun_runner.py
- Primary run_id:
ictr-20260521T042359Z-ad3d0b97 - Document:
ICX-CONST, modedryrun, actoro7-contabo-live-dryrun - Seeded from live read-only discovery as
context_pack_readonly.
Check results (14/14 PASS)
| # | check | result |
|---|---|---|
| 1 | kill_switch_off (__execution_enabled__=False) |
PASS |
| 2 | ro_connection (context_pack_readonly / txn_read_only=on) |
PASS |
| 3 | orchestrator_role_is_read_only (is_read_only=True) |
PASS |
| 4 | live_survey_seeded (icx 60/60, post_enactment_expected) |
PASS |
| 5 | mode_live_refused (ProductionExecutionNotAuthorized) |
PASS |
| 6 | cut_pauses_at_sg1 (STOP_APPROVAL_REQUIRED) |
PASS |
| 7 | live_pins_present (live_icx_enacted=60, drift pinned) | PASS |
| 8 | resume_sg1_pauses_at_sg2 | PASS |
| 9 | resume_sg2_reaches_closeout (closeout_reported) |
PASS |
| 10 | all_phases_passed (11/11) | PASS |
| 11 | closed_out_resume_idempotent | PASS |
| 12 | duplicate_run_distinct_id_same_source_pin | PASS |
| 13 | no_production_mutation (before==after) | PASS |
| 14 | kill_switch_still_off | PASS |
State transitions (run ad3d0b97)
cut() -> GRANTS_PROBED -> pause AWAITING_CUT_AUTHORIZATION [STOP_APPROVAL_REQUIRED]
resume(+SG1) -> WRITE_VERIFIED -> pause AWAITING_LIFECYCLE_AUTHORIZATION [STOP_APPROVAL_REQUIRED]
resume(+SG2) -> LIFECYCLE_ENACTED -> CLOSEOUT_REPORTED [stop_code=None]
All 11 phases passed: source_pin, mark, cutplan, pre_write_backup,
grant_probe, cut_leg_a, structural_verify, leg_b_record, write_verify,
lifecycle_enact, closeout.
Closeout evidence
final_state : closeout_reported
writer_digest : 151e2f7bfd5abfa082f5ad18598b5608281ebd7254dbe581ee9c6dc511114b18
change_set_id : 676de7f5-9847-4fe3-a582-f5656459a9ae (simulated, dry-run)
lifecycle_enacted_count: 60
closeout_summary_sha : f99775723b7f02037c8b05af3b62a4e05c2f56b72680ee6210a870c4f25a7c0a
manifest_digest : c286cb0a795311616d2bd0059cebc9586eb776e5512dc0f99cca862589c6c126
region_sha : d1f85d9864dffab3c466e302258f6886a987e91ccbd72c558b1293067a5e2b3b
Live pins built from live read-only state
RunContext.context_pins carried the live survey forward (per-run pins,
no module-level PIN_*): live_role_is_read_only=True,
live_readonly_role=context_pack_readonly, live_icx_total=60,
live_icx_enacted=60, live_lifecycle_log_rows=60,
live_drift_class=post_enactment_expected,
live_grant_probe_sha=45d25e38…, plus a deterministic 60-row dry-run
shadow cutplan (candidate_count=60).
No production mutation
Mode.LIVE was attempted and refused
(orchestrator.__execution_enabled__ is False). All mutating phases
(cut_leg_a / leg_b_record / write_verify / lifecycle_enact) ran the
Mode.DRYRUN simulator branch. The orchestrator's DryRunReporter
writes KB docs to local disk only — it never hits the network. Row-count
proof is in report 07.
Read-only live dry-run safety
The smoke is the macro's "read-only live dry-run": live state is read
once (3 read-only SELECTs at seed time as context_pack_readonly); every
subsequent phase is simulator-only. No production CUT/VERIFY/enact
occurred. No sub-gap — the run completed in full.