You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| 5.36 | Create plan with touchSet |`mc_plan` name=tmc-plan-touch, mode=supervisor, jobs=[{name: "tmc-ts1", prompt: "Create allowed.txt with 'hello' and also create rogue.txt with 'oops'", touchSet: ["allowed.txt"]}]| Plan created, job launches |
| 5.41 | Create violating files in worktree | In worktree: `echo 'hello' > allowed.txt && echo 'oops' > rogue.txt && git add . && git commit -m "add files"`| Commit with both files |
506
+
| 5.42 |**Simulate completion**: Set job status to `completed` via state file edit — update `jobs.json` entry for tmc-ts1 to `status: "completed"`| Job appears completed |
This tests spawning a new agent in the existing worktree to fix violations.
536
+
537
+
| # | Test | Action | Expected |
538
+
|---|------|--------|----------|
539
+
| 5.52 | Create plan with touchSet |`mc_plan` name=tmc-plan-relaunch, mode=supervisor, jobs=[{name: "tmc-rl1", prompt: "Create allowed.txt with 'hello'", touchSet: ["allowed.txt"]}]| Plan created |
540
+
| 5.53 |**Wait 3-5 seconds**| — | — |
541
+
| 5.54 | Kill job, create violation, set completed | Same as steps 5.39-5.42 for tmc-rl1 | Job appears completed with rogue.txt |
| 5.56 | Verify plan paused |`mc_plan_status`| Paused, checkpoint=`on_error`|
544
+
| 5.57 | Relaunch agent |`mc_plan_approve` checkpoint=on_error, relaunch=tmc-rl1 | New tmux session created in existing worktree, job back to `running`|
This tests manually fixing the branch and having MC re-validate.
560
+
561
+
| # | Test | Action | Expected |
562
+
|---|------|--------|----------|
563
+
| 5.64 | Create plan with touchSet |`mc_plan` name=tmc-plan-retry, mode=supervisor, jobs=[{name: "tmc-rt1", prompt: "Create allowed.txt with 'hello'", touchSet: ["allowed.txt"]}]| Plan created |
564
+
| 5.65 |**Wait 3-5 seconds**| — | — |
565
+
| 5.66 | Kill job, create violation, set completed | Same as steps 5.39-5.42 for tmc-rt1 | Job appears completed with rogue.txt |
| 5.76 | Both retry and relaunch |`mc_plan_approve` checkpoint=on_error, retry=tmc-x, relaunch=tmc-x | Error: cannot specify both retry and relaunch |
586
+
587
+
#### 5G-6: Relaunch Non-TouchSet Job Rejected
588
+
589
+
| # | Test | Action | Expected |
590
+
|---|------|--------|----------|
591
+
| 5.77 | Relaunch on non-touchset failure | (If a plan is paused with a non-touchset failure) `mc_plan_approve` checkpoint=on_error, relaunch=jobname | Error: relaunch only available for touchSet violations |
592
+
483
593
### Phase 5 Cleanup
484
594
485
595
| # | Action | Verify |
486
596
|---|--------|--------|
487
-
| 5.31|`mc_plan_cancel` (if still active) | Plan cancelled |
488
-
| 5.32|`mc_cleanup` all=true, deleteBranch=true | All plan artifacts cleaned |
489
-
| 5.33|`mc_jobs` — verify empty | "No jobs found." |
490
-
| 5.34|`mc_plan_status` — verify no plan | "No active plan" |
597
+
| 5.78|`mc_plan_cancel` (if still active) | Plan cancelled |
598
+
| 5.79|`mc_cleanup` all=true, deleteBranch=true | All plan artifacts cleaned |
599
+
| 5.80|`mc_jobs` — verify empty | "No jobs found." |
600
+
| 5.81|`mc_plan_status` — verify no plan | "No active plan" |
8.**Report reliability**: Agents have `mc_report` available (plugin loaded via `.opencode` symlink) and are instructed to call it via `MC_REPORT_SUFFIX` prompt injection. Report files should appear reliably, but agent behavior is ultimately non-deterministic — a missing report after 15 seconds warrants investigation but is not necessarily a plugin failure.
988
1098
9.**Launcher script timing**: `.mc-launch.sh` is deleted after 5 seconds. Phase 7 must read it immediately after launch. If you miss the window, the test is inconclusive, not failed.
989
1099
10.**Worktree initialization race**: Some operations may fail if attempted before the worktree is fully initialized. The 3-5 second wait after every `mc_launch` mitigates this.
1100
+
11.**TouchSet testing on feature branches**: When running Phase 5G on a non-main branch, job worktrees inherit the feature branch's uncommitted changes. TouchSet validation compares the job branch against the integration branch, so feature branch source files show up as spurious violations alongside the actual test violations (e.g., `rogue.txt`). This is a testing artifact — in production, both branches share the same base so only the job's own changes appear.
0 commit comments