KB-668E

07 - Rollback / Disable Plan (O6B)

4 min read Revision 1
dot-iu-cutterv0.6O6BG7rollbackdisablekill-switch

07 - Rollback / Disable Plan

O6B · doc 7 of 8 · 2026-05-21 · Gate G7 — rollback/disable proof.

1. Exactly what O6B created on Contabo (the entire blast radius)

created_object_1:  /opt/incomex/dot/iu-cutter-v0.6/
                   (dir, 80 files + DEPLOY-MANIFEST.txt; drwxrwxr-x root:root)
created_object_2:  /tmp/iu-cutter-v0.6-6625f76.tar.gz
                   (artifact tarball, 176544 bytes; kept for audit)
removed_during_run: /tmp/o6b-stage/   (transient staging dir — already gone)
nothing_else:      no service, no .env, no DB row, no git commit, no symlink

2. Exact rollback command (full removal of the v0.6 deployment)

# Removes ONLY what O6B created. v0.4 is never referenced, never touched.
rm -rf /opt/incomex/dot/iu-cutter-v0.6
rm -f  /tmp/iu-cutter-v0.6-6625f76.tar.gz
post_rollback_state:  host returns to its exact pre-O6B condition
git_action_needed:    NONE — iu-cutter-v0.6 was deliberately left UNTRACKED
                      in the /opt/incomex/dot git repo, so removal needs no
                      `git revert` / `git checkout` and changes no history
service_action:       NONE — no service was installed or started
db_action:            NONE — no DB object was created
reversibility:        100% — code-only, single `rm -rf`, no residue

3. Disable plan (if v0.6 must be neutralised but kept on disk)

Fastest-first, mirroring the O5 disable ladder:

level_0_kill_switch:   already in force.
  cutter_agent/orchestrator/__init__.py:36  __execution_enabled__ = False
  -> Mode.LIVE structurally refused; no phase can run live. Instant.

level_1_no_invocation: the orchestrator has no CLI surface and no service
  -> it cannot run unless a human explicitly writes + runs a driver
  script. Idle on disk = inert.

level_3_no_deploy/undo: the rollback in §2 removes it entirely.

4. v0.4 skeleton — proven untouched

v0.4_path:               /opt/incomex/dot/iu-cutter
v0.4_tree_sha256:        be65de80f6632edbe51f13c59975376c936b2ac12cb8e86577a4c15c0ea173b3
  (identical pre-deploy, post-deploy, and at G7 re-check — 3 reads, all equal)
v0.4_version:            "0.4.0-dryrun-skeleton"  (unchanged)
dot_repo_HEAD:           e93424b  (unchanged)
dot_repo_status iu-cutter: 0 changed lines (clean)
verdict:                 v0.4 skeleton 100% intact

5. No service running — verified

systemd cutter units:    0
cron cutter entries:     0
docker cutter containers: 0
running cutter processes: 0
  (note: a first `pgrep -af "iu-cutter-v0.6|orchestrator"` returned 1 —
   that was the pgrep process self-matching its own pattern argv. A precise
   re-check via `ps -eo pid,args` + a /proc/*/cwd scan confirmed ZERO
   cutter/orchestrator processes and zero processes with cwd inside the
   deploy dir.)
verdict:                 nothing running; matches "no service existed before"

6. Kill-switch — OFF and verified on the deployed copy

deployed_file:  /opt/incomex/dot/iu-cutter-v0.6/cutter_agent/orchestrator/__init__.py
line_36:        __execution_enabled__ = False
verdict:        kill-switch OFF

7. Result

G7_verdict:  PASS
  rollback defined + exact .......... PASS (single rm -rf, 100% reversible)
  v0.4 untouched .................... PASS (anchor be65de80... unchanged x3)
  no service running ................ PASS (0 units / 0 cron / 0 docker / 0 proc)
  kill-switch OFF ................... PASS (execution_enabled=False)
proceed_to:  G8 KB reporting + final report
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-o6b-devhost-deploy-postdeploy-smoke/07-rollback-disable-plan-2026-05-21.md