greprag 5.59.4 → 5.60.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/commands/arm-reminder.d.ts +5 -0
  2. package/dist/commands/arm-reminder.js +11 -0
  3. package/dist/commands/arm-reminder.js.map +1 -1
  4. package/dist/commands/codex-chip/breakthrough-ack-command.d.ts +1 -0
  5. package/dist/commands/codex-chip/breakthrough-ack-command.js +25 -0
  6. package/dist/commands/codex-chip/breakthrough-ack-command.js.map +1 -0
  7. package/dist/commands/codex-chip/breakthrough-command.d.ts +5 -0
  8. package/dist/commands/codex-chip/breakthrough-command.js +46 -0
  9. package/dist/commands/codex-chip/breakthrough-command.js.map +1 -0
  10. package/dist/commands/codex-chip/breakthrough.d.ts +15 -0
  11. package/dist/commands/codex-chip/breakthrough.js +147 -0
  12. package/dist/commands/codex-chip/breakthrough.js.map +1 -0
  13. package/dist/commands/codex-chip/cleanup-command.js +11 -1
  14. package/dist/commands/codex-chip/cleanup-command.js.map +1 -1
  15. package/dist/commands/codex-chip/command.d.ts +1 -1
  16. package/dist/commands/codex-chip/command.js +48 -84
  17. package/dist/commands/codex-chip/command.js.map +1 -1
  18. package/dist/commands/codex-chip/goal-command.js +27 -4
  19. package/dist/commands/codex-chip/goal-command.js.map +1 -1
  20. package/dist/commands/codex-chip/goals.d.ts +15 -2
  21. package/dist/commands/codex-chip/goals.js +170 -10
  22. package/dist/commands/codex-chip/goals.js.map +1 -1
  23. package/dist/commands/codex-chip/help.d.ts +1 -0
  24. package/dist/commands/codex-chip/help.js +34 -0
  25. package/dist/commands/codex-chip/help.js.map +1 -0
  26. package/dist/commands/codex-chip/inbox.d.ts +1 -1
  27. package/dist/commands/codex-chip/inbox.js +5 -3
  28. package/dist/commands/codex-chip/inbox.js.map +1 -1
  29. package/dist/commands/codex-chip/mechanic-lifecycle.d.ts +5 -0
  30. package/dist/commands/codex-chip/mechanic-lifecycle.js +67 -0
  31. package/dist/commands/codex-chip/mechanic-lifecycle.js.map +1 -0
  32. package/dist/commands/codex-chip/model.d.ts +39 -1
  33. package/dist/commands/codex-chip/model.js +6 -0
  34. package/dist/commands/codex-chip/model.js.map +1 -1
  35. package/dist/commands/codex-chip/naming.d.ts +2 -2
  36. package/dist/commands/codex-chip/naming.js +8 -5
  37. package/dist/commands/codex-chip/naming.js.map +1 -1
  38. package/dist/commands/codex-chip/native.js +5 -1
  39. package/dist/commands/codex-chip/native.js.map +1 -1
  40. package/dist/commands/codex-chip/prompt.js +22 -2
  41. package/dist/commands/codex-chip/prompt.js.map +1 -1
  42. package/dist/commands/codex-chip/resume-command.js +3 -0
  43. package/dist/commands/codex-chip/resume-command.js.map +1 -1
  44. package/dist/commands/codex-chip/selection.d.ts +6 -3
  45. package/dist/commands/codex-chip/selection.js +81 -27
  46. package/dist/commands/codex-chip/selection.js.map +1 -1
  47. package/dist/commands/codex-chip/worker.js +19 -0
  48. package/dist/commands/codex-chip/worker.js.map +1 -1
  49. package/dist/commands/codex-delivery.d.ts +7 -1
  50. package/dist/commands/codex-delivery.js +98 -15
  51. package/dist/commands/codex-delivery.js.map +1 -1
  52. package/dist/commands/codex-native-delivery.d.ts +70 -0
  53. package/dist/commands/codex-native-delivery.js +285 -0
  54. package/dist/commands/codex-native-delivery.js.map +1 -0
  55. package/dist/commands/codex-startup.js +1 -1
  56. package/dist/commands/codex-startup.js.map +1 -1
  57. package/dist/commands/codex.js +17 -12
  58. package/dist/commands/codex.js.map +1 -1
  59. package/dist/commands/docptr.js +4 -4
  60. package/dist/commands/docptr.js.map +1 -1
  61. package/dist/commands/inbox-primer-reminder.js +2 -2
  62. package/dist/commands/inbox-primer-reminder.js.map +1 -1
  63. package/dist/commands/init.js +1 -1
  64. package/dist/commands/load-primer-reminder.js +2 -2
  65. package/dist/commands/load-primer-reminder.js.map +1 -1
  66. package/dist/commands/load.js +2 -2
  67. package/dist/commands/load.js.map +1 -1
  68. package/dist/index.js +96 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/opencode-plugin.bundle.js +4 -4
  71. package/dist/procedure-run.js +5 -5
  72. package/dist/procedure-run.js.map +1 -1
  73. package/dist/session-id.d.ts +4 -0
  74. package/dist/session-id.js +13 -0
  75. package/dist/session-id.js.map +1 -1
  76. package/package.json +1 -1
  77. package/skill/greprag/SKILL.md +1 -1
  78. package/skill/greprag/docs/codex-chip.md +10 -8
  79. package/skill/greprag/docs/setup.md +6 -6
  80. package/skill/templates/chip-leader.md +9 -6
  81. package/skill/templates/codex-chip-spawn.md +46 -32
@@ -49,6 +49,7 @@ exports.peerHumanTag = peerHumanTag;
49
49
  exports.readIdentityAlias = readIdentityAlias;
50
50
  exports.buildSessionIdContext = buildSessionIdContext;
51
51
  exports.armMonitorCommand = armMonitorCommand;
52
+ exports.buildArmDirective = buildArmDirective;
52
53
  exports.handleSessionIdHook = handleSessionIdHook;
53
54
  const path = __importStar(require("path"));
54
55
  const fs = __importStar(require("fs"));
@@ -175,6 +176,18 @@ function armMonitorCommand(short, ownerPid, assistant = false, mechanic = false)
175
176
  // the relaunch rate so a persistent crash can't spin.
176
177
  return `while true; do ${watch}; case $? in 0|64) break;; esac; sleep 1; done`;
177
178
  }
179
+ /** Backward-compatible copyable watcher directive for older hook consumers.
180
+ * Current hooks use the detection-gated reminder registry, but keeping this
181
+ * pure formatter exported preserves the public helper and older integrations. */
182
+ function buildArmDirective(short, alias = null, ownerPid, assistant = false, mechanic = false) {
183
+ const reply = `${alias || '<handle>'}@greprag.com/${short}`;
184
+ const command = armMonitorCommand(short, ownerPid, assistant, mechanic);
185
+ return 'STOP IMMEDIATELY AND READ THIS. '
186
+ + `No live inbox watcher is armed for ${reply}. `
187
+ + 'ToolSearch query "select:Monitor" and arm a persistent:true Monitor '
188
+ + `(description:"greprag inbox ${short}", timeout_ms:3600000) with command: ${command}. `
189
+ + 'Then answer the waiting peer message.';
190
+ }
178
191
  /** Handle `greprag-hook session-id`. Reads the Claude Code hook payload
179
192
  * from `input.session_id`, emits a JSON response with hookSpecificOutput.
180
193
  * additionalContext to stdout. Silent on missing session_id (other hook
@@ -1 +1 @@
1
- {"version":3,"file":"session-id.js","sourceRoot":"","sources":["../src/session-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-id.js","sourceRoot":"","sources":["../src/session-id.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greprag",
3
- "version": "5.59.4",
3
+ "version": "5.60.2",
4
4
  "description": "GrepRAG — agent memory for Claude Code, Codex, and OpenCode.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -130,7 +130,7 @@ Aliases (silent back-compat): `greprag memory briefing` → `recap` (renamed v5.
130
130
 
131
131
  **Codex: DO NOT CLAIM HOOKS ARE ACTIVE JUST BECAUSE `~/.codex/hooks.json` EXISTS.** Codex Desktop requires Settings -> Settings -> Hooks trust review before command hooks run automatically. If turn capture is missing after `greprag init --codex`, tell the user: open Codex Desktop Settings -> Settings -> Hooks, trust the GrepRAG hooks, then start a fresh Codex session.
132
132
 
133
- **Codex live inbox push requires the startup watcher plus target-thread delivery.** Hooks only fire at Codex turn/tool/session boundaries. Public installs should use `greprag init --codex --tenant-id <handle> --install-watcher`; run `greprag codex doctor --wake-test` to inspect state, and use `greprag codex watch --session <id>` only for foreground testing. The sidecar listens to GrepRAG inbox SSE. Native `send_message_to_thread` / `codex_delegation` proved the messaging pattern; on Windows the public sidecar uses Codex app-server stdio `thread/resume` for the exact target thread, then `turn/start` or `turn/steer`, and keeps the bridge alive until the turn settles. `codex exec resume` is diagnostic/history-only because it can append to history without surfacing in the active Desktop pane. If wake-test reports no app-server-resume path, describe live push as unavailable/non-visible and rely on turn-bound inbox steering for reliable delivery.
133
+ **Codex live inbox push requires the startup watcher plus target-thread delivery.** Hooks only fire at Codex turn/tool/session boundaries. Public installs should use `greprag init --codex --tenant-id <handle> --install-watcher`; run `greprag codex doctor --wake-test` to inspect state, and use `greprag codex watch --session <id>` only for foreground testing. The sidecar listens to GrepRAG inbox SSE. BREAKTHROUGH is the sole agent-visible control rail: it records queued injected acknowledged → acted with a nonce-bound target acknowledgment. Codex app-server `thread/resume`, `turn/start`, and `turn/steer` are private transports behind that rail. A completed empty turn, `codex exec resume`, or persisted history entry is not delivery; natural turn-drain is degraded fallback only. If wake-test reports no loaded/native path, surface delivery degradation and keep the breakthrough pending for retry.
134
134
 
135
135
  **ABOUT TO `greprag send` TO A `@gmail.com` / `@anthropic.com` / REAL EMAIL ADDRESS? STOP — for `inbox`/`send` (internal cross-session messaging), `users.email` IS NEVER A ROUTING ADDRESS.** Use the numeric handle (`1834729@greprag.com`) or claimed vanity alias (`travis@greprag.com`). If you don't know the recipient's handle, ASK — don't guess from their email. adr: adr/numeric-handles.md. Full grammar: `docs/inbox.md § address`.
136
136
 
@@ -13,14 +13,16 @@ greprag codex chip spawn "<task>" --name <slug> --title "<Purview>" \
13
13
  Native-v4 sends the full mission, selected model/effort, and worktree in the
14
14
  initial `create_thread`. There is no bootstrap task and no second assignment.
15
15
  The initial hook binds the lease before tools; attach emits `IN-FLIGHT` and
16
- starts monitoring only. A single task is `Chip: <Purview>`. Multi-chip missions
17
- use `LEAD: <Mission>` and unique `Chip A/B/C: <Specific Purview>` identities.
18
-
19
- The standard/default profile is `gpt-5.6-luna` at `xhigh`. Use
20
- `--profile complex` (or `--complex`) for `gpt-5.6-sol` at `high` when the chip
21
- owns orchestration or unusually difficult work. Explicit `--model <model-id>`
22
- and `--effort none|minimal|low|medium|high|xhigh|max|ultra` create a custom
23
- override.
16
+ starts monitoring only. Exact roles are `PLANNER: <Mission>` (intent and final
17
+ acceptance), `LEAD: <Mission>` (Luna/xhigh orchestration), `Chip A/B/C:
18
+ <Specific Purview>` (Luna/xhigh workers), and `ADVISOR: <Purview>` (read-only
19
+ Sol advice for a documented fundamental blocker).
20
+
21
+ Role gates are explicit: LEAD and worker execution are fixed to
22
+ `gpt-5.6-luna/xhigh`; PLANNER may use Luna/xhigh or Sol/high for planning;
23
+ ADVISOR is read-only Sol/high and requires `--model-reason "Fundamental
24
+ blocker: ..."`. Complexity flags no longer route new execution chips to Sol.
25
+ Use `codex chip breakthrough <id> --reason "..."` for boundary routing.
24
26
 
25
27
  Declare every path the child may change. Split overlapping work differently;
26
28
  never bypass a lease collision. Use `--read-only` for research or review.
@@ -65,12 +65,12 @@ greprag codex watch --session <8hex-or-full-codex-session-id>
65
65
 
66
66
  If `--session` is omitted, it uses the latest Codex session recorded in
67
67
  `~/.codex/session_index.jsonl`. The sidecar stays attached to GrepRAG inbox SSE
68
- and should wake Codex through the Desktop app-layer thread continuation path,
69
- equivalent to Codex's `send_message_to_thread` tool. The successful visible
70
- shape is a delegated turn in the target thread (`codex_delegation` with the
71
- source thread id). `codex exec resume <session> -` can append to Codex's thread
72
- store, but it is not a reliable visible wake in the active Desktop pane and
73
- must be treated as fallback/diagnostic only.
68
+ and routes agent-visible control through the nonce-bound BREAKTHROUGH protocol.
69
+ Private app-server continuation may create the target turn, but success requires
70
+ visible `BREAKTHROUGH_ACK:<nonce>` output; persisted history or an empty turn is
71
+ not delivery. `codex exec resume <session> -` can append to Codex's thread store,
72
+ but it is not a reliable visible wake in the active Desktop pane and must be
73
+ treated as fallback/diagnostic only.
74
74
  Use `greprag codex startup status` to inspect the login entry and
75
75
  `greprag codex startup remove` to uninstall it.
76
76
 
@@ -13,12 +13,15 @@ before mobilizing the troops.
13
13
 
14
14
  ## Codex Desktop standard
15
15
 
16
- For Codex, the leader first creates one durable mission goal with objective,
17
- observable final state, and criterion IDs. The leader task is named
18
- `LEAD: <Mission>`. Before dispatch it assigns each workstream a unique letter
19
- and human purview—`Chip A: <Specific Purview>`, `Chip B: ...`—plus disjoint
20
- leases and explicit `--covers` criteria. Every spawn uses `--multi-chip`, its
21
- `--label`, and its proper `--title`.
16
+ For Codex, the `PLANNER: <Mission>` first creates one durable mission goal with
17
+ objective, observable final state, and criterion IDs, then launches exactly one
18
+ `LEAD: <Mission>` at `gpt-5.6-luna/xhigh`. The LEAD owns decomposition, child
19
+ dispatch, integration, checks, release proof, and immediate child closeout.
20
+ Before dispatch it assigns each workstream a unique letter and human
21
+ purview—`Chip A: <Specific Purview>`, `Chip B: ...`—plus disjoint leases and
22
+ explicit `--covers` criteria. Every worker spawn uses `--multi-chip`, its
23
+ `--label`, and its proper `--title`; workers stay Luna/xhigh. `ADVISOR:` is a
24
+ read-only Sol/high escape hatch only for a documented fundamental blocker.
22
25
 
23
26
  Dispatch uses the native-v4 `createRequest` exactly once. It contains the real
24
27
  mission, the parent-selected model/effort, and native worktree setup; never send
@@ -3,6 +3,12 @@
3
3
  This is the Codex Desktop chip method. It is separate from Claude Code
4
4
  `spawn_task`: never use or copy the Claude Block 1/Block 2 prompt here.
5
5
 
6
+ Exact visible titles are role contracts: `PLANNER: <Mission>` owns intent and
7
+ acceptance, `LEAD: <Mission>` is always Luna/xhigh and owns orchestration,
8
+ `Chip A/B/C: <Specific Purview>` are Luna/xhigh workers, and
9
+ `ADVISOR: <Purview>` is read-only Sol/high advice for a documented fundamental
10
+ blocker.
11
+
6
12
  ## Gate: one chip or a mission?
7
13
 
8
14
  A single independent task proceeds directly. If two or more chips target one
@@ -18,6 +24,10 @@ uniquely named `Chip A: <Specific Purview>`, `Chip B: ...`; a single worker is
18
24
  Every mission starts with a durable parent-owned goal. Give it a concrete
19
25
  objective, final state, and stable acceptance criterion IDs. Every write chip
20
26
  declares non-overlapping ownership leases; research uses `--read-only`.
27
+ After the planner attaches the Luna LEAD, the LEAD creates one nested goal and
28
+ runs `greprag codex chip goal bind-lead <lead-id> --goal-id <nested-goal-id>`.
29
+ That emits `GOAL_READY:<goalId>`; no LEAD execution or child dispatch is valid
30
+ before it. All later Chips, ADVISOR, and MECHANIC tasks use that exact goal.
21
31
 
22
32
  ```bash
23
33
  greprag codex chip goal create \
@@ -36,30 +46,18 @@ greprag codex chip spawn "<independent task>" \
36
46
  ```
37
47
 
38
48
  The parent/`LEAD:` selects each worker model before dispatch; the child never
39
- self-selects or changes it. Defaults are exact:
40
-
41
- - **Standard `gpt-5.6-luna` / `xhigh`:** bounded single-owner execution with
42
- clear acceptance criteria: scoped implementation, tests, docs, or focused
43
- research/review.
44
- - **Complex `gpt-5.6-sol` / `high`:** use when *any* hard signal applies:
45
- orchestration/decomposition; multi-chip integration or merge arbitration;
46
- architecture/API/schema decisions; cross-cutting ownership; ambiguous
47
- requirements needing synthesis; high-risk migration/security/accounting
48
- correctness; or novel diagnosis with multiple interacting hypotheses.
49
-
50
- In multi-chip missions the `LEAD:` itself is Sol/high, but it classifies every
51
- worker independently—workers do not inherit Sol. Complex selection requires a
52
- concise `--model-reason` plus one or more `--complexity-signal` values:
53
- `orchestration`, `multi-chip-integration`, `architecture-api-schema`,
54
- `cross-cutting-ownership`, `ambiguous-synthesis`, `high-risk-correctness`, or
55
- `novel-multi-hypothesis-diagnosis`. Explicit `--model`/`--effort` overrides are
56
- supported and require `--model-reason`; standard records its rubric reason by
57
- default. Native Desktop `thinking` uses the callable enum and is checked against
58
- the selected model's advertised effort matrix.
59
- An arbitrary custom native model also requires `--native-model-verified`, which
60
- means the parent verified it on the Desktop surface before dispatch. The
61
- manifest persists profile/model/effort, parent session in
62
- `selectedBy`, reason, and matched signals.
49
+ self-selects or changes it. `LEAD` and ordinary Chips are fixed to
50
+ `gpt-5.6-luna/xhigh`.
51
+ `PLANNER` may use Luna/xhigh or explicitly Sol/high. `ADVISOR` must be
52
+ `--read-only`, Sol/high, and carry `--model-reason "Fundamental blocker: ..."`.
53
+ The old `--complex`, `--profile complex`, and `--complexity-signal` routing is
54
+ rejected for new spawns. Native Desktop `thinking` uses the callable enum and
55
+ is checked against the selected model's advertised effort matrix. The manifest
56
+ persists role, model, effort, parent session, reason, and criterion evidence.
57
+ The auditable selection fields are `selectedBy`, `reason`, and `matched signals`.
58
+ The hard-signal rubric covers `architecture/API/schema` and
59
+ `high-risk migration/security/accounting`; a scope boundary sends a
60
+ `breakthrough message` and the child `never swaps models autonomously`.
63
61
 
64
62
  Native Desktop is the default runtime.
65
63
  `--runtime cli` is opt-in and only valid when PATH Codex `model/list` actually
@@ -73,6 +71,9 @@ The spawn command creates a unique starting branch, records the manifest and
73
71
  lease, and returns a `greprag-codex-native-v4` handoff. Pass `createRequest`
74
72
  exactly to native `create_thread`: it already contains the full real mission,
75
73
  selected `model`, `thinking`, project target, and worktree starting branch.
74
+ The native target schema is `target.type=project` with
75
+ `startingState={type:"branch", branchName}` inside the worktree environment;
76
+ do not invent a checkout path or second bootstrap turn. Do not add `cwd`, `title`, `model`, or `effort` to the native create request; those values belong to the handoff and post-create verification contract.
76
77
  `expectedBaseSha` is the attach-time commit invariant behind that reserved branch.
77
78
  This is the only assignment turn. Never create a bootstrap task and never send
78
79
  the mission again after attach.
@@ -91,6 +92,8 @@ and starts the monitor. The enforced order is create-real-mission → provisiona
91
92
  bind → resolve → rename/verify → attach → IN-FLIGHT → monitor. A standalone CLI cannot
92
93
  invoke the Desktop-owned surface, so it prepares rather than pretending an old
93
94
  PATH app-server successfully ran a 5.6 turn.
95
+ The title race contract is `set_thread_title` → read it back twice →
96
+ `IN-FLIGHT → mission` monitor only after the exact title remains stable.
94
97
 
95
98
  ## Mandatory parent inbox lifecycle
96
99
 
@@ -101,9 +104,9 @@ The child must address the recorded parent session, not a bare mailbox:
101
104
  report` command in its opening prompt.
102
105
  - `BLOCKED` before ending when it cannot finish, by running the exact `codex
103
106
  chip block` command.
104
- - If the work crosses the selected model boundary, send a breakthrough message
105
- explaining the new signal. The parent decides whether to steer or relaunch;
106
- the child never swaps models autonomously.
107
+ - If the work crosses the selected model boundary, run
108
+ `codex chip breakthrough <id> --reason "..."`. This emits a typed
109
+ `BREAKTHROUGH` event to the recorded parent; the child never swaps models.
107
110
 
108
111
  The attached host monitor validates receipts from the recorded native cwd,
109
112
  exact base ancestry, clean state, and every changed path against the lease. A
@@ -112,13 +115,17 @@ reserved chip ref, then sends the terminal inbox event. The
112
115
  child never merges, pushes, cleans up, or edits the parent checkout. Reports map
113
116
  concrete evidence to every covered goal criterion. The parent reviews the diff,
114
117
  integrates it, and runs `greprag codex chip goal accept <goal-id> --summary
115
- "<review judgment>"` only when all criteria and chips are satisfied. For a
116
- verified squash/cherry-pick add `--integrated <chip-id>` to acceptance. Acceptance
118
+ "<review judgment>"` only when all criteria and chips are satisfied. A
119
+ LEAD-owned goal with no additional child chip records final proofs with
120
+ `goal attest --commit <release-commit>` plus repeated `--evidence` and `--check`
121
+ before acceptance. For a verified squash/cherry-pick add `--integrated <chip-id>`
122
+ to acceptance. Acceptance
117
123
  returns machine-readable closeout entries: apply each native `archiveRequest`
118
124
  first, then its exact `cleanupCommand`. Cleanup does not imply acceptance, is
119
125
  refused before it, and requires `--native-archived` for native tasks.
120
126
 
121
- Native chips have a receipt deadline (default 180 minutes; override with
127
+ Native chips require parent-side `--native-model-verified` proof before monitor
128
+ start and have a receipt deadline (default 180 minutes; override with
122
129
  `--native-timeout-minutes`). This standalone CLI cannot query Desktop-private
123
130
  turn status, so it never guesses that a settled task succeeded: write *and read*
124
131
  chips must submit `report`/`block`, and timeout fails loudly. One live monitor
@@ -145,12 +152,15 @@ Useful recovery commands:
145
152
  ```bash
146
153
  greprag codex chip handoff <id> --json
147
154
  greprag codex chip status <id>
148
- greprag codex chip steer <id> "<follow-up>"
155
+ greprag codex chip breakthrough <id> --reason "<follow-up>"
149
156
  greprag codex chip resume <id>
150
157
  greprag codex chip stop <id>
151
158
  ```
152
159
 
153
- For a native chip, `steer` emits a `send_message_to_thread` handoff. Stop fails
160
+ For a native chip, `BREAKTHROUGH` is the sole agent-visible control envelope;
161
+ native turn transport remains private. Breakthrough delivery is
162
+ durably queued → injected → acknowledged → acted; empty completed turns are
163
+ not delivery, and natural-turn drain is degraded fallback only. Stop fails
154
164
  loud until the parent interrupts the Desktop task, then confirms that fact with
155
165
  `stop <id> --native-interrupted`; the CLI never records a false cancellation.
156
166
  After restart/usage interruption, use `resume`, deliver its handoff, and wait for
@@ -161,3 +171,7 @@ For an invalid terminal launch, preserve the mission and run `goal exclude
161
171
  replacement. Excluded evidence cannot satisfy acceptance. To abandon the whole
162
172
  mission, stop every chip first, then use `goal cancel <goal-id> --reason
163
173
  "<concrete reason>"`; cancelled closeout is not acceptance.
174
+
175
+ Mechanic repair incidents are not Mechanic task termination: `REPAIR-READY/CLOSED`
176
+ returns the same Luna/xhigh Mechanic to `OPEN+DORMANT` for later typed friction.
177
+ Only final LEAD teardown may accept/clean it with `--mechanic-final`.