@cleocode/core 2026.11.1-canary.5 → 2026.11.1-canary.6

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 (83) hide show
  1. package/README.md +1 -1
  2. package/dist/.source-stamp.json +1 -1
  3. package/dist/build-provenance.json +2 -2
  4. package/dist/check/pr-gate.d.ts +1 -1
  5. package/dist/check/pr-gate.js +1 -1
  6. package/dist/config.js +1 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/doctor/type-matrix-repair.d.ts +35 -4
  9. package/dist/doctor/type-matrix-repair.d.ts.map +1 -1
  10. package/dist/doctor/type-matrix-repair.js +154 -48
  11. package/dist/doctor/type-matrix-repair.js.map +1 -1
  12. package/dist/llm/credential-writeback.d.ts +1 -1
  13. package/dist/llm/credential-writeback.js +1 -1
  14. package/dist/memory/decision-cross-link.d.ts +1 -1
  15. package/dist/memory/decision-cross-link.js +1 -1
  16. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  17. package/dist/orchestrate/spawn-ops.js +5 -3
  18. package/dist/orchestrate/spawn-ops.js.map +1 -1
  19. package/dist/resources/governor.d.ts +63 -0
  20. package/dist/resources/governor.d.ts.map +1 -1
  21. package/dist/resources/governor.js +96 -3
  22. package/dist/resources/governor.js.map +1 -1
  23. package/dist/sentient/background-review.d.ts +1 -1
  24. package/dist/sentient/background-review.js +1 -1
  25. package/dist/sentient/curator-config.d.ts +1 -1
  26. package/dist/sentient/curator-config.js +1 -1
  27. package/dist/sentient/curator.d.ts +1 -1
  28. package/dist/sentient/curator.js +1 -1
  29. package/dist/sentient/local-patch.d.ts +1 -1
  30. package/dist/sentient/local-patch.js +1 -1
  31. package/dist/sentient/skill-provenance.d.ts +1 -1
  32. package/dist/sentient/skill-provenance.js +1 -1
  33. package/dist/sentient/skill-review-prompt.d.ts +1 -1
  34. package/dist/sentient/skill-review-prompt.js +1 -1
  35. package/dist/setup/sections/brain.d.ts +2 -2
  36. package/dist/setup/sections/brain.js +2 -2
  37. package/dist/setup/sections/harness.d.ts +2 -2
  38. package/dist/setup/sections/harness.js +2 -2
  39. package/dist/setup/sections/identity.d.ts +1 -1
  40. package/dist/setup/sections/identity.js +1 -1
  41. package/dist/setup/sections/integrations.d.ts +1 -1
  42. package/dist/setup/sections/integrations.js +1 -1
  43. package/dist/setup/sections/llm.d.ts +1 -1
  44. package/dist/setup/sections/llm.js +1 -1
  45. package/dist/setup/sections/project-conventions.d.ts +1 -1
  46. package/dist/setup/sections/project-conventions.js +1 -1
  47. package/dist/setup/sections/sentient.d.ts +1 -1
  48. package/dist/setup/sections/sentient.js +1 -1
  49. package/dist/setup/sections/verification.d.ts +1 -1
  50. package/dist/setup/sections/verification.js +1 -1
  51. package/dist/setup/wizard.d.ts +2 -2
  52. package/dist/setup/wizard.js +2 -2
  53. package/dist/skills/doctor-adopt.d.ts +2 -2
  54. package/dist/skills/doctor-adopt.js +2 -2
  55. package/dist/skills/doctor-bridge.d.ts +2 -2
  56. package/dist/skills/doctor-bridge.js +2 -2
  57. package/dist/skills/doctor.d.ts +2 -2
  58. package/dist/skills/doctor.js +2 -2
  59. package/dist/skills/federation-store.d.ts +1 -1
  60. package/dist/skills/federation-store.js +1 -1
  61. package/dist/skills/hermes-importer.d.ts +1 -1
  62. package/dist/skills/hermes-importer.js +1 -1
  63. package/dist/skills/migration.d.ts +1 -1
  64. package/dist/skills/migration.js +1 -1
  65. package/dist/skills/skill-root.d.ts +1 -1
  66. package/dist/skills/skill-root.js +1 -1
  67. package/dist/skills/skills-guard.d.ts +1 -1
  68. package/dist/skills/skills-guard.js +1 -1
  69. package/dist/skills/usage-recorder.d.ts +1 -1
  70. package/dist/skills/usage-recorder.js +1 -1
  71. package/dist/status/index.d.ts +1 -1
  72. package/dist/status/index.js +1 -1
  73. package/dist/store/schema/skills-schema.d.ts +2 -2
  74. package/dist/store/schema/skills-schema.js +2 -2
  75. package/dist/store/skills-db.d.ts +2 -2
  76. package/dist/store/skills-db.js +2 -2
  77. package/dist/store/skills-store.d.ts +1 -1
  78. package/dist/store/skills-store.js +1 -1
  79. package/dist/store/skills-usage-queue.d.ts +1 -1
  80. package/dist/store/skills-usage-queue.js +1 -1
  81. package/package.json +12 -12
  82. package/schemas/config.schema.json +50 -0
  83. package/templates/workflows/README.md +1 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@ CLEO core business logic kernel **and canonical SDK surface** — tasks, session
6
6
 
7
7
  > **`@cleocode/core` IS the CLEO SDK.** There is no separate `@cleocode/cleo-sdk` package. The `Cleo` facade, domain namespaces, and flat free functions are all exposed through per-subpath exports that follow a CalVer stability contract. See [STABILITY.md](./STABILITY.md) for the full contract and `.dts-snapshots/` for the enforced baseline.
8
8
 
9
- For LLM agents and SDK consumers calling CORE operations directly (the recommended approach — no CLI subprocess overhead), see the **[CORE API Agent Guide](../../docs/api/CORE-API-AGENT-GUIDE.md)**.
9
+ For LLM agents and SDK consumers calling CORE operations directly (the recommended approach — no CLI subprocess overhead), see the **[CORE API Agent Guide](../../docs/reference/core-sdk.md)**.
10
10
 
11
11
  ## Quickstart
12
12
 
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "schema": 2,
3
- "sourceHash": "b930f12c5360e1e63cebbe5963303ce48fca7741567dd7d65a8d1a60a3d29b04"
3
+ "sourceHash": "eb31788f953803633480253b7750f1478d4d47a5871196380e00f5bf157c3105"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": 1,
3
- "gitHead": "6653630536a8444ecc3d0ce2596ed92f30a05e88",
4
- "builtAt": "2026-11-04T23:21:45.074Z",
3
+ "gitHead": "72e349d8d8c974ae24d7f5f121a31fa785ff08f4",
4
+ "builtAt": "2026-11-05T14:49:24.984Z",
5
5
  "linkedWorktree": null
6
6
  }
@@ -23,7 +23,7 @@
23
23
  *
24
24
  * @task T11956
25
25
  * @epic T11679 (DHQ burn-down)
26
- * @see docs/release/branch-protection-setup.md § "Required Status Checks"
26
+ * @see docs/guide/branch-protection-setup.md § "Required Status Checks"
27
27
  */
28
28
  /**
29
29
  * A single runnable pre-PR gate. The `command` + `args` are executed verbatim
@@ -23,7 +23,7 @@
23
23
  *
24
24
  * @task T11956
25
25
  * @epic T11679 (DHQ burn-down)
26
- * @see docs/release/branch-protection-setup.md § "Required Status Checks"
26
+ * @see docs/guide/branch-protection-setup.md § "Required Status Checks"
27
27
  */
28
28
  import { spawnSync } from 'node:child_process';
29
29
  import { getProjectRoot } from '../paths.js';
package/dist/config.js CHANGED
@@ -115,7 +115,7 @@ const DEFAULTS = {
115
115
  // read `~/.claude/.credentials.json` without the operator's consent.
116
116
  claudeCodeConsentGiven: false,
117
117
  // T9411 — Cooperative write-back to ~/.claude/.credentials.json is ON
118
- // by default per OQ-1 in docs/plans/E-CONFIG-AUTH-UNIFY.md. CLEO still
118
+ // by default per OQ-1 in `cleo docs fetch e-config-auth-unify`. CLEO still
119
119
  // never creates Claude Code's file unless the operator has consented;
120
120
  // this default only governs whether an existing file gets co-written.
121
121
  cooperativeWriteBack: true,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,11 @@ import type { TaskType } from '@cleocode/contracts';
38
38
  export declare const TYPE_MATRIX_REPAIR_ACTION = "doctor.type-matrix.repair";
39
39
  /** Audit-log action of a rollback. */
40
40
  export declare const TYPE_MATRIX_ROLLBACK_ACTION = "doctor.type-matrix.rollback";
41
- /** One repair operation: re-type a task, or move it under another parent. */
41
+ /**
42
+ * One repair operation: re-type a task, or move it under another parent
43
+ * (`toParentId: null` moves it to the root). A resolution may give one task
44
+ * both a re-type and a reparent; they are applied together as one write.
45
+ */
42
46
  export type TypeMatrixRepairOp = {
43
47
  readonly kind: 'retype';
44
48
  readonly taskId: string;
@@ -46,7 +50,7 @@ export type TypeMatrixRepairOp = {
46
50
  } | {
47
51
  readonly kind: 'reparent';
48
52
  readonly taskId: string;
49
- readonly toParentId: string;
53
+ readonly toParentId: string | null;
50
54
  };
51
55
  /** A parent/child pair that breaks the matrix, and how it can be repaired. */
52
56
  export interface TypeMatrixViolationPlan {
@@ -141,8 +145,28 @@ export interface TypeMatrixApplyOptions {
141
145
  * each row is written only at the version the plan read, so a write made
142
146
  * after the review is `E_CONFLICT` with nothing changed.
143
147
  */
144
- readonly plan?: TypeMatrixRepairReport;
148
+ readonly plan?: TypeMatrixReviewedPlan;
145
149
  }
150
+ /** The part of a dry run an apply is held to. */
151
+ export type TypeMatrixReviewedPlan = Pick<TypeMatrixRepairReport, 'operations' | 'rowVersions'>;
152
+ /**
153
+ * Parse a reviewed dry run for `--plan <file>`: the `cleo doctor type-matrix`
154
+ * JSON output (the envelope or its `data`).
155
+ *
156
+ * @param text - The file's contents.
157
+ * @returns The operations and row versions, or why the file was refused.
158
+ * @example
159
+ * ```ts
160
+ * const reviewed = parseTypeMatrixPlan(readFileSync('plan.json', 'utf-8'));
161
+ * ```
162
+ */
163
+ export declare function parseTypeMatrixPlan(text: string): {
164
+ ok: true;
165
+ value: TypeMatrixReviewedPlan;
166
+ } | {
167
+ ok: false;
168
+ reason: string;
169
+ };
146
170
  /**
147
171
  * Apply the proposals and the agent's resolutions in one transaction, and
148
172
  * record the receipt. Each row is written only at the version it was read at
@@ -174,13 +198,20 @@ export interface TypeMatrixRollbackResult {
174
198
  readonly id: string;
175
199
  readonly reason: string;
176
200
  }[];
201
+ /**
202
+ * Ancestors the repair's reparents reopened. A rollback does not close them
203
+ * again: work may have started on them since, so closing stays a decision.
204
+ */
205
+ readonly stillReopened: readonly string[];
177
206
  }
178
207
  /**
179
208
  * Restore the rows a repair changed to their before image. Refused when the
180
209
  * receipt is unknown or already rolled back, or when any row no longer
181
210
  * matches the repair's after image (a later edit is never overwritten). Only
182
211
  * the rows the type-matrix trigger allows are restored; the rest are listed
183
- * in `refused` with the reason, and refused outright when none can be.
212
+ * in `refused` with the reason, and refused outright when none can be. Done
213
+ * ancestors a reparent reopened stay open (`stillReopened`): closing one again
214
+ * is a decision, not an undo.
184
215
  *
185
216
  * @param projectRoot - Project root.
186
217
  * @param receiptId - `receiptId` of {@link applyTypeMatrixRepair}.
@@ -1 +1 @@
1
- {"version":3,"file":"type-matrix-repair.d.ts","sourceRoot":"","sources":["../../src/doctor/type-matrix-repair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-matrix-repair.d.ts","sourceRoot":"","sources":["../../src/doctor/type-matrix-repair.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ import { CleoError } from '../errors.js';
40
40
  import { getTaskAccessor } from '../store/data-accessor.js';
41
41
  import { nextTaskVersion } from '../store/task-version.js';
42
42
  import { assertParentNotIrreversiblyTerminal } from '../tasks/child-disposition.js';
43
+ import { exceedsMaxDepth } from '../tasks/hierarchy.js';
43
44
  import { getHierarchyLimits } from '../tasks/task-tree.js';
44
45
  /** Audit-log action of an applied repair (its row id is the receipt id). */
45
46
  export const TYPE_MATRIX_REPAIR_ACTION = 'doctor.type-matrix.repair';
@@ -161,13 +162,14 @@ export function parseTypeMatrixResolutions(text) {
161
162
  if (op['kind'] === 'retype' && isTaskType(op['to'])) {
162
163
  operations.push({ kind: 'retype', taskId, to: op['to'] });
163
164
  }
164
- else if (op['kind'] === 'reparent' && typeof op['toParentId'] === 'string') {
165
+ else if (op['kind'] === 'reparent' &&
166
+ (typeof op['toParentId'] === 'string' || op['toParentId'] === null)) {
165
167
  operations.push({ kind: 'reparent', taskId, toParentId: op['toParentId'] });
166
168
  }
167
169
  else {
168
170
  return {
169
171
  ok: false,
170
- reason: `operation ${i} must be {"kind":"retype","to":<saga|epic|task|subtask>} or {"kind":"reparent","toParentId":<id>}`,
172
+ reason: `operation ${i} must be {"kind":"retype","to":<saga|epic|task|subtask>} or {"kind":"reparent","toParentId":<id|null>}`,
171
173
  };
172
174
  }
173
175
  }
@@ -200,30 +202,34 @@ function decideOperations(plans, model, resolutions, guards) {
200
202
  const operations = [];
201
203
  const seen = new Set();
202
204
  let after = new Map(model);
203
- for (const op of resolutions) {
204
- if (!model.has(op.taskId)) {
205
+ for (const [taskId, ops] of groupByTask(resolutions)) {
206
+ if (!model.has(taskId)) {
205
207
  // @sync-invariant none:input-shape a resolution naming an unknown task is refused before anything is written
206
- throw refuse(`Resolution names ${op.taskId}, which is not a task in this store.`);
208
+ throw refuse(`Resolution names ${taskId}, which is not a task in this store.`);
207
209
  }
208
- if (op.kind === 'reparent' && !model.has(op.toParentId)) {
209
- // @sync-invariant none:input-shape a resolution naming an unknown parent is refused before anything is written
210
- throw refuse(`Resolution moves ${op.taskId} under ${op.toParentId}, which is not a task.`);
210
+ const kinds = ops.map((op) => op.kind);
211
+ if (new Set(kinds).size !== kinds.length) {
212
+ // @sync-invariant none:input-shape two resolutions of one kind for a task are refused before anything is written
213
+ throw refuse(`Two ${kinds[0]} resolutions name ${taskId}; give at most one re-type and one reparent per task.`);
211
214
  }
212
- if (seen.has(op.taskId)) {
213
- // @sync-invariant none:input-shape two resolutions for one task are refused before anything is written
214
- throw refuse(`Two resolutions name ${op.taskId}; give one per task.`);
215
- }
216
- if (op.kind === 'reparent')
217
- assertReparentAllowed(op, after, guards);
218
215
  const trial = new Map(after);
219
- applyOp(trial, op);
220
- const broken = newlyBroken(op.taskId, after, trial);
221
- if (!placed(op.taskId, trial) || broken.length > 0) {
216
+ for (const op of ops) {
217
+ if (op.kind === 'reparent') {
218
+ if (op.toParentId !== null && !model.has(op.toParentId)) {
219
+ // @sync-invariant none:input-shape a resolution naming an unknown parent is refused before anything is written
220
+ throw refuse(`Resolution moves ${taskId} under ${op.toParentId}, which is not a task.`);
221
+ }
222
+ assertReparentAllowed(op, trial, guards);
223
+ }
224
+ applyOp(trial, op);
225
+ }
226
+ const broken = newlyBroken(taskId, after, trial);
227
+ if (!placed(taskId, trial) || broken.length > 0) {
222
228
  // @sync-invariant task.parent.type-matrix a resolution that leaves the matrix broken is refused before anything is written
223
- throw refuse(`The resolution for ${op.taskId} would leave ${[op.taskId, ...broken].join(', ')} where the type matrix (saga→epic, epic→task, task→subtask) does not allow it.`, 'Run cleo doctor type-matrix for the options, and resolve each ambiguous pair with one of them.');
229
+ throw refuse(`The resolution for ${taskId} would leave ${[taskId, ...broken].join(', ')} where the type matrix (saga→epic, epic→task, task→subtask) does not allow it.`, 'Run cleo doctor type-matrix for the options, and resolve each ambiguous pair with one of them.');
224
230
  }
225
- seen.add(op.taskId);
226
- operations.push(op);
231
+ seen.add(taskId);
232
+ operations.push(...ops);
227
233
  after = trial;
228
234
  }
229
235
  for (const plan of plans) {
@@ -242,8 +248,19 @@ function decideOperations(plans, model, resolutions, guards) {
242
248
  const unresolved = plans.filter((p) => !placed(p.taskId, after)).map((p) => p.taskId);
243
249
  return { operations, unresolved };
244
250
  }
251
+ /** Resolutions grouped by task, in the order each task first appears. */
252
+ function groupByTask(ops) {
253
+ const groups = new Map();
254
+ for (const op of ops) {
255
+ const list = groups.get(op.taskId) ?? [];
256
+ list.push(op);
257
+ groups.set(op.taskId, list);
258
+ }
259
+ return groups;
260
+ }
261
+ /** Ancestor count of `id` (a root is 0), as `getTaskDepth` counts it. */
245
262
  function depthOf(id, model) {
246
- let depth = 1;
263
+ let depth = 0;
247
264
  let parent = model.get(id)?.parentId ?? null;
248
265
  const seen = new Set([id]);
249
266
  while (parent !== null && !seen.has(parent)) {
@@ -264,12 +281,21 @@ function subtreeHeight(id, children) {
264
281
  * are reopened at apply time, as that core does.
265
282
  */
266
283
  function assertReparentAllowed(op, model, guards) {
267
- if (op.toParentId === op.taskId) {
284
+ const target = op.toParentId;
285
+ const children = childIndex(model);
286
+ if (target === null) {
287
+ if (subtreeHeight(op.taskId, children) > guards.limits.maxDepth) {
288
+ // @sync-invariant none:input-shape a reparent past the depth limit is refused before anything is written
289
+ throw refuse(`Moving ${op.taskId} to the root would exceed the max depth of ${guards.limits.maxDepth}.`);
290
+ }
291
+ return;
292
+ }
293
+ if (target === op.taskId) {
268
294
  // @sync-invariant none:input-shape a reparent under itself is refused before anything is written
269
295
  throw refuse(`Moving ${op.taskId} under itself would create a cycle.`);
270
296
  }
271
- assertParentNotIrreversiblyTerminal({ id: op.toParentId, status: guards.status.get(op.toParentId) ?? 'pending' }, op.taskId, 'move');
272
- let cursor = op.toParentId;
297
+ assertParentNotIrreversiblyTerminal({ id: target, status: guards.status.get(target) ?? 'pending' }, op.taskId, 'move');
298
+ let cursor = target;
273
299
  const seen = new Set();
274
300
  while (cursor !== null && !seen.has(cursor)) {
275
301
  if (cursor === op.taskId) {
@@ -279,13 +305,13 @@ function assertReparentAllowed(op, model, guards) {
279
305
  seen.add(cursor);
280
306
  cursor = model.get(cursor)?.parentId ?? null;
281
307
  }
282
- const children = childIndex(model);
283
- const deepest = depthOf(op.toParentId, model) + 1 + subtreeHeight(op.taskId, children);
284
- if (deepest > guards.limits.maxDepth) {
308
+ // The moved task sits at depth(target) + 1; its deepest descendant below that.
309
+ const deepest = depthOf(target, model) + 1 + subtreeHeight(op.taskId, children);
310
+ if (exceedsMaxDepth(deepest - 1, guards.limits.maxDepth)) {
285
311
  // @sync-invariant none:input-shape a reparent past the depth limit is refused before anything is written
286
312
  throw refuse(`Moving ${op.taskId} under ${op.toParentId} would exceed the max depth of ${guards.limits.maxDepth}.`);
287
313
  }
288
- const siblings = (children.get(op.toParentId) ?? []).filter((c) => c !== op.taskId).length;
314
+ const siblings = (children.get(target) ?? []).filter((c) => c !== op.taskId).length;
289
315
  if (guards.limits.maxSiblings > 0 && siblings >= guards.limits.maxSiblings) {
290
316
  // @sync-invariant none:input-shape a reparent past the sibling limit is refused before anything is written
291
317
  throw refuse(`Cannot add ${op.taskId} under ${op.toParentId}: max siblings (${guards.limits.maxSiblings}) exceeded.`);
@@ -345,6 +371,43 @@ export async function planTypeMatrixRepair(projectRoot, resolutions = []) {
345
371
  rowVersions: rowVersions(operations, new Map(tasks.map((t) => [t.id, t]))),
346
372
  };
347
373
  }
374
+ /**
375
+ * Parse a reviewed dry run for `--plan <file>`: the `cleo doctor type-matrix`
376
+ * JSON output (the envelope or its `data`).
377
+ *
378
+ * @param text - The file's contents.
379
+ * @returns The operations and row versions, or why the file was refused.
380
+ * @example
381
+ * ```ts
382
+ * const reviewed = parseTypeMatrixPlan(readFileSync('plan.json', 'utf-8'));
383
+ * ```
384
+ */
385
+ export function parseTypeMatrixPlan(text) {
386
+ let parsed;
387
+ try {
388
+ parsed = JSON.parse(text);
389
+ }
390
+ catch (err) {
391
+ return { ok: false, reason: `not JSON (${err instanceof Error ? err.message : String(err)})` };
392
+ }
393
+ const outer = typeof parsed === 'object' && parsed !== null ? parsed : {};
394
+ const inner = outer['data'];
395
+ const report = typeof inner === 'object' && inner !== null ? inner : outer;
396
+ const ops = parseTypeMatrixResolutions(JSON.stringify(report['operations'] ?? null));
397
+ if (!ops.ok)
398
+ return { ok: false, reason: `not a type-matrix dry run: operations ${ops.reason}` };
399
+ const versions = report['rowVersions'];
400
+ if (typeof versions !== 'object' || versions === null || Array.isArray(versions)) {
401
+ return { ok: false, reason: 'not a type-matrix dry run: rowVersions is missing' };
402
+ }
403
+ const rowVersions = {};
404
+ for (const [id, v] of Object.entries(versions)) {
405
+ if (typeof v !== 'string')
406
+ return { ok: false, reason: `rowVersions.${id} is not a version` };
407
+ rowVersions[id] = v;
408
+ }
409
+ return { ok: true, value: { operations: ops.operations, rowVersions } };
410
+ }
348
411
  /** Ancestors of `id` in the model, nearest first. */
349
412
  function ancestorsOf(id, model) {
350
413
  const out = [];
@@ -403,14 +466,19 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
403
466
  for (const op of operations)
404
467
  applyOp(after, op);
405
468
  const childrenAfter = childIndex(after);
406
- const reopen = new Set();
469
+ /** Done ancestor → the tasks whose reparent reopens it. */
470
+ const reopen = new Map();
407
471
  for (const op of operations) {
408
472
  if (op.kind !== 'reparent')
409
473
  continue;
410
474
  const oldParent = model.get(op.taskId)?.parentId ?? null;
411
475
  for (const id of [...ancestorsOf(oldParent, model), ...ancestorsOf(op.toParentId, after)]) {
412
- if (byId.get(id)?.status === 'done')
413
- reopen.add(id);
476
+ if (byId.get(id)?.status !== 'done')
477
+ continue;
478
+ const by = reopen.get(id) ?? [];
479
+ if (!by.includes(op.taskId))
480
+ by.push(op.taskId);
481
+ reopen.set(id, by);
414
482
  }
415
483
  }
416
484
  const receiptId = `type-matrix-${randomUUID()}`;
@@ -426,23 +494,36 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
426
494
  return updatedAt;
427
495
  };
428
496
  const images = [];
429
- for (const op of operations) {
430
- const before = model.get(op.taskId);
431
- if (before === undefined)
497
+ // One write per task: a re-type and a reparent of the same task land
498
+ // together, so the trigger checks the row only in its final shape.
499
+ for (const [taskId, ops] of groupByTask(operations)) {
500
+ const before = model.get(taskId);
501
+ const now = after.get(taskId);
502
+ if (before === undefined || now === undefined)
432
503
  continue;
433
- const fields = op.kind === 'retype' ? { type: op.to } : { parentId: op.toParentId };
434
- const was = { type: before.type, parentId: before.parentId };
435
- const now = op.kind === 'retype' ? { ...was, type: op.to } : { ...was, parentId: op.toParentId };
504
+ const fields = {};
505
+ for (const op of ops) {
506
+ if (op.kind === 'retype')
507
+ fields.type = op.to;
508
+ else
509
+ fields.parentId = op.toParentId;
510
+ }
436
511
  images.push({
437
- id: op.taskId,
438
- before: was,
439
- after: now,
440
- updatedAt: await write(op.taskId, fields),
441
- children: childrenAfter.get(op.taskId) ?? [],
512
+ id: taskId,
513
+ before: { type: before.type, parentId: before.parentId },
514
+ after: { type: now.type, parentId: now.parentId },
515
+ updatedAt: await write(taskId, fields),
516
+ children: childrenAfter.get(taskId) ?? [],
442
517
  });
443
518
  }
444
- for (const id of reopen)
445
- await write(id, { status: 'pending', completedAt: null });
519
+ // As coreTaskReparent does: reopen and note it on the ancestor.
520
+ for (const [id, by] of reopen) {
521
+ const notes = [
522
+ ...(byId.get(id)?.notes ?? []),
523
+ `[${stamp}] Reopened by reparent of ${by.join(', ')} (hierarchy changed)`,
524
+ ];
525
+ await write(id, { status: 'pending', completedAt: null, notesJson: JSON.stringify(notes) });
526
+ }
446
527
  // Each image carries the version this transaction last wrote.
447
528
  const final = images.map((r) => ({ ...r, updatedAt: current.get(r.id) ?? r.updatedAt }));
448
529
  await tx.appendLog({
@@ -450,7 +531,7 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
450
531
  action: TYPE_MATRIX_REPAIR_ACTION,
451
532
  taskId: final[0]?.id ?? 'doctor',
452
533
  actor: 'cleo doctor type-matrix',
453
- details: { operations, unresolved, reopened: [...reopen] },
534
+ details: { operations, unresolved, reopened: [...reopen.keys()] },
454
535
  before: final.map((r) => ({ id: r.id, ...r.before })),
455
536
  after: final.map((r) => ({
456
537
  id: r.id,
@@ -466,7 +547,7 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
466
547
  receiptId,
467
548
  rollback: `cleo doctor type-matrix --rollback ${receiptId}`,
468
549
  rows,
469
- reopened: [...reopen],
550
+ reopened: [...reopen.keys()],
470
551
  };
471
552
  }
472
553
  /**
@@ -532,6 +613,23 @@ function refusalOf(row, then, finalType, children) {
532
613
  ? null
533
614
  : `restoring ${row.id} as a ${row.type} would break ${later.id} (a ${later.type ?? 'task'} filed under it after the repair); the repair's value stays`;
534
615
  }
616
+ /** The ancestors a repair receipt says its reparents reopened. */
617
+ function reopenedOf(detailsJson) {
618
+ if (detailsJson === null)
619
+ return [];
620
+ try {
621
+ const details = JSON.parse(detailsJson);
622
+ const reopened = typeof details === 'object' && details !== null
623
+ ? details['reopened']
624
+ : undefined;
625
+ return Array.isArray(reopened)
626
+ ? reopened.filter((x) => typeof x === 'string')
627
+ : [];
628
+ }
629
+ catch {
630
+ return [];
631
+ }
632
+ }
535
633
  function malformed(receiptId) {
536
634
  // @sync-invariant none:input-shape a malformed receipt is refused before anything is written
537
635
  return new CleoError(ExitCode.VALIDATION_ERROR, `Receipt ${receiptId} has a malformed row image.`, {
@@ -577,7 +675,9 @@ function parseImages(json, receiptId) {
577
675
  * receipt is unknown or already rolled back, or when any row no longer
578
676
  * matches the repair's after image (a later edit is never overwritten). Only
579
677
  * the rows the type-matrix trigger allows are restored; the rest are listed
580
- * in `refused` with the reason, and refused outright when none can be.
678
+ * in `refused` with the reason, and refused outright when none can be. Done
679
+ * ancestors a reparent reopened stay open (`stillReopened`): closing one again
680
+ * is a decision, not an undo.
581
681
  *
582
682
  * @param projectRoot - Project root.
583
683
  * @param receiptId - `receiptId` of {@link applyTypeMatrixRepair}.
@@ -657,6 +757,12 @@ export async function rollbackTypeMatrixRepair(projectRoot, receiptId) {
657
757
  after: restore,
658
758
  });
659
759
  });
660
- return { receiptId, rollbackReceiptId, restored: restore.map((r) => r.id), refused };
760
+ return {
761
+ receiptId,
762
+ rollbackReceiptId,
763
+ restored: restore.map((r) => r.id),
764
+ refused,
765
+ stillReopened: reopenedOf(receipt.detailsJson),
766
+ };
661
767
  }
662
768
  //# sourceMappingURL=type-matrix-repair.js.map