@cleocode/core 2026.9.24 → 2026.9.25

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 (328) hide show
  1. package/dist/audit-prune.d.ts +32 -0
  2. package/dist/audit-prune.d.ts.map +1 -1
  3. package/dist/audit-prune.js +37 -3
  4. package/dist/audit-prune.js.map +1 -1
  5. package/dist/build-provenance.json +2 -2
  6. package/dist/cloud/crypto.d.ts +1 -2
  7. package/dist/cloud/crypto.d.ts.map +1 -1
  8. package/dist/cloud/crypto.js +1 -11
  9. package/dist/cloud/crypto.js.map +1 -1
  10. package/dist/cloud/uuidv7.d.ts +9 -0
  11. package/dist/cloud/uuidv7.d.ts.map +1 -0
  12. package/dist/cloud/uuidv7.js +19 -0
  13. package/dist/cloud/uuidv7.js.map +1 -0
  14. package/dist/decide/bench/index.d.ts +1 -1
  15. package/dist/decide/bench/index.d.ts.map +1 -1
  16. package/dist/decide/bench/index.js +1 -1
  17. package/dist/decide/bench/index.js.map +1 -1
  18. package/dist/decide/bench/operation.d.ts +1 -1
  19. package/dist/decide/bench/operation.d.ts.map +1 -1
  20. package/dist/decide/bench/operation.js +1 -1
  21. package/dist/decide/bench/operation.js.map +1 -1
  22. package/dist/decide/bench/profiles.d.ts +50 -22
  23. package/dist/decide/bench/profiles.d.ts.map +1 -1
  24. package/dist/decide/bench/profiles.js +103 -59
  25. package/dist/decide/bench/profiles.js.map +1 -1
  26. package/dist/decide/bench/report.d.ts.map +1 -1
  27. package/dist/decide/bench/report.js +6 -1
  28. package/dist/decide/bench/report.js.map +1 -1
  29. package/dist/decide/bench/runner.d.ts +6 -1
  30. package/dist/decide/bench/runner.d.ts.map +1 -1
  31. package/dist/decide/bench/runner.js +1 -0
  32. package/dist/decide/bench/runner.js.map +1 -1
  33. package/dist/decide/client.d.ts.map +1 -1
  34. package/dist/decide/client.js +11 -5
  35. package/dist/decide/client.js.map +1 -1
  36. package/dist/decide/jev-wire.d.ts +31 -1
  37. package/dist/decide/jev-wire.d.ts.map +1 -1
  38. package/dist/decide/jev-wire.js +61 -7
  39. package/dist/decide/jev-wire.js.map +1 -1
  40. package/dist/docs/export-document.js +17181 -15536
  41. package/dist/docs/export-document.js.map +3 -3
  42. package/dist/doctor/orphan-ac-bindings.d.ts +64 -0
  43. package/dist/doctor/orphan-ac-bindings.d.ts.map +1 -0
  44. package/dist/doctor/orphan-ac-bindings.js +59 -0
  45. package/dist/doctor/orphan-ac-bindings.js.map +1 -0
  46. package/dist/doctor/projects.d.ts.map +1 -1
  47. package/dist/doctor/projects.js +43 -29
  48. package/dist/doctor/projects.js.map +1 -1
  49. package/dist/doctor/row-identity.d.ts +31 -0
  50. package/dist/doctor/row-identity.d.ts.map +1 -0
  51. package/dist/doctor/row-identity.js +93 -0
  52. package/dist/doctor/row-identity.js.map +1 -0
  53. package/dist/doctor/twin-collapse.d.ts +58 -2
  54. package/dist/doctor/twin-collapse.d.ts.map +1 -1
  55. package/dist/doctor/twin-collapse.js +212 -14
  56. package/dist/doctor/twin-collapse.js.map +1 -1
  57. package/dist/lifecycle/verification/satisfies-validator.d.ts.map +1 -1
  58. package/dist/lifecycle/verification/satisfies-validator.js +10 -0
  59. package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
  60. package/dist/llm/plugin-facade.js +17045 -15400
  61. package/dist/llm/plugin-facade.js.map +3 -3
  62. package/dist/memory/index.d.ts.map +1 -1
  63. package/dist/memory/index.js +19 -10
  64. package/dist/memory/index.js.map +1 -1
  65. package/dist/memory/manifest-identity.d.ts +171 -0
  66. package/dist/memory/manifest-identity.d.ts.map +1 -0
  67. package/dist/memory/manifest-identity.js +345 -0
  68. package/dist/memory/manifest-identity.js.map +1 -0
  69. package/dist/memory/mental-model-queue.d.ts +14 -4
  70. package/dist/memory/mental-model-queue.d.ts.map +1 -1
  71. package/dist/memory/mental-model-queue.js +64 -35
  72. package/dist/memory/mental-model-queue.js.map +1 -1
  73. package/dist/memory/pipeline-manifest-sqlite.d.ts +47 -5
  74. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  75. package/dist/memory/pipeline-manifest-sqlite.js +130 -14
  76. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  77. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  78. package/dist/memory/retrieval/observe.js +2 -0
  79. package/dist/memory/retrieval/observe.js.map +1 -1
  80. package/dist/memory/transcript-scanner.js +1 -1
  81. package/dist/nexus/deps.d.ts.map +1 -1
  82. package/dist/nexus/deps.js +7 -14
  83. package/dist/nexus/deps.js.map +1 -1
  84. package/dist/nexus/discover.d.ts.map +1 -1
  85. package/dist/nexus/discover.js +6 -9
  86. package/dist/nexus/discover.js.map +1 -1
  87. package/dist/nexus/git-state.d.ts.map +1 -1
  88. package/dist/nexus/git-state.js +10 -1
  89. package/dist/nexus/git-state.js.map +1 -1
  90. package/dist/nexus/projects-clean.d.ts.map +1 -1
  91. package/dist/nexus/projects-clean.js +22 -11
  92. package/dist/nexus/projects-clean.js.map +1 -1
  93. package/dist/nexus/projects-scan.d.ts.map +1 -1
  94. package/dist/nexus/projects-scan.js +8 -13
  95. package/dist/nexus/projects-scan.js.map +1 -1
  96. package/dist/nexus/query.d.ts.map +1 -1
  97. package/dist/nexus/query.js +4 -12
  98. package/dist/nexus/query.js.map +1 -1
  99. package/dist/nexus/registry-roots.d.ts +5 -2
  100. package/dist/nexus/registry-roots.d.ts.map +1 -1
  101. package/dist/nexus/registry-roots.js +8 -10
  102. package/dist/nexus/registry-roots.js.map +1 -1
  103. package/dist/nexus/registry.d.ts +18 -0
  104. package/dist/nexus/registry.d.ts.map +1 -1
  105. package/dist/nexus/registry.js +37 -16
  106. package/dist/nexus/registry.js.map +1 -1
  107. package/dist/orchestrate/worktree-complete.d.ts.map +1 -1
  108. package/dist/orchestrate/worktree-complete.js +40 -2
  109. package/dist/orchestrate/worktree-complete.js.map +1 -1
  110. package/dist/orchestration/spawn-prompt.d.ts +26 -0
  111. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  112. package/dist/orchestration/spawn-prompt.js +62 -91
  113. package/dist/orchestration/spawn-prompt.js.map +1 -1
  114. package/dist/release/ci-evidence.d.ts +190 -0
  115. package/dist/release/ci-evidence.d.ts.map +1 -1
  116. package/dist/release/ci-evidence.js +436 -4
  117. package/dist/release/ci-evidence.js.map +1 -1
  118. package/dist/sdk/validator-ac-pull.d.ts.map +1 -1
  119. package/dist/sdk/validator-ac-pull.js +2 -1
  120. package/dist/sdk/validator-ac-pull.js.map +1 -1
  121. package/dist/selfimprove/fix-gen.js +17049 -15404
  122. package/dist/selfimprove/fix-gen.js.map +3 -3
  123. package/dist/sentient/cross-project-hygiene.d.ts +5 -0
  124. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  125. package/dist/sentient/cross-project-hygiene.js +7 -1
  126. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  127. package/dist/sentient/propose-tick.d.ts.map +1 -1
  128. package/dist/sentient/propose-tick.js +2 -3
  129. package/dist/sentient/propose-tick.js.map +1 -1
  130. package/dist/sentient/stage-drift-tick.d.ts.map +1 -1
  131. package/dist/sentient/stage-drift-tick.js +2 -3
  132. package/dist/sentient/stage-drift-tick.js.map +1 -1
  133. package/dist/skills/manifests/research.js +2 -0
  134. package/dist/skills/manifests/research.js.map +1 -1
  135. package/dist/skills/orchestrator/validator.d.ts.map +1 -1
  136. package/dist/skills/orchestrator/validator.js +9 -2
  137. package/dist/skills/orchestrator/validator.js.map +1 -1
  138. package/dist/skills/validation.d.ts +4 -1
  139. package/dist/skills/validation.d.ts.map +1 -1
  140. package/dist/skills/validation.js +11 -3
  141. package/dist/skills/validation.js.map +1 -1
  142. package/dist/spawn/branch-lock.d.ts +111 -7
  143. package/dist/spawn/branch-lock.d.ts.map +1 -1
  144. package/dist/spawn/branch-lock.js +296 -8
  145. package/dist/spawn/branch-lock.js.map +1 -1
  146. package/dist/store/ac-binding-prune.d.ts +144 -0
  147. package/dist/store/ac-binding-prune.d.ts.map +1 -0
  148. package/dist/store/ac-binding-prune.js +293 -0
  149. package/dist/store/ac-binding-prune.js.map +1 -0
  150. package/dist/store/agent-registry-store.d.ts.map +1 -1
  151. package/dist/store/agent-registry-store.js +3 -2
  152. package/dist/store/agent-registry-store.js.map +1 -1
  153. package/dist/store/backup-sidecar.d.ts +85 -2
  154. package/dist/store/backup-sidecar.d.ts.map +1 -1
  155. package/dist/store/backup-sidecar.js +173 -1
  156. package/dist/store/backup-sidecar.js.map +1 -1
  157. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  158. package/dist/store/conduit-sqlite.js +3 -2
  159. package/dist/store/conduit-sqlite.js.map +1 -1
  160. package/dist/store/credential-transfer.d.ts.map +1 -1
  161. package/dist/store/credential-transfer.js +3 -0
  162. package/dist/store/credential-transfer.js.map +1 -1
  163. package/dist/store/db-helpers.d.ts +17 -11
  164. package/dist/store/db-helpers.d.ts.map +1 -1
  165. package/dist/store/db-helpers.js +61 -38
  166. package/dist/store/db-helpers.js.map +1 -1
  167. package/dist/store/display-id-alias.d.ts +529 -0
  168. package/dist/store/display-id-alias.d.ts.map +1 -0
  169. package/dist/store/display-id-alias.js +1063 -0
  170. package/dist/store/display-id-alias.js.map +1 -0
  171. package/dist/store/dual-scope-db.d.ts.map +1 -1
  172. package/dist/store/dual-scope-db.js +21 -0
  173. package/dist/store/dual-scope-db.js.map +1 -1
  174. package/dist/store/exodus/reconcile.d.ts.map +1 -1
  175. package/dist/store/exodus/reconcile.js +7 -2
  176. package/dist/store/exodus/reconcile.js.map +1 -1
  177. package/dist/store/exodus/recovery.d.ts.map +1 -1
  178. package/dist/store/exodus/recovery.js +20 -1
  179. package/dist/store/exodus/recovery.js.map +1 -1
  180. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  181. package/dist/store/legacy-tasks-lineage.js +19 -2
  182. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  183. package/dist/store/row-identity-flag.d.ts +26 -0
  184. package/dist/store/row-identity-flag.d.ts.map +1 -0
  185. package/dist/store/row-identity-flag.js +31 -0
  186. package/dist/store/row-identity-flag.js.map +1 -0
  187. package/dist/store/row-identity-registry.d.ts +61 -0
  188. package/dist/store/row-identity-registry.d.ts.map +1 -0
  189. package/dist/store/row-identity-registry.js +198 -0
  190. package/dist/store/row-identity-registry.js.map +1 -0
  191. package/dist/store/row-identity.d.ts +390 -0
  192. package/dist/store/row-identity.d.ts.map +1 -0
  193. package/dist/store/row-identity.js +1240 -0
  194. package/dist/store/row-identity.js.map +1 -0
  195. package/dist/store/safety-data-accessor.d.ts +2 -0
  196. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  197. package/dist/store/safety-data-accessor.js +4 -0
  198. package/dist/store/safety-data-accessor.js.map +1 -1
  199. package/dist/store/schema/attachments.d.ts +1 -1
  200. package/dist/store/schema/audit.d.ts +4 -4
  201. package/dist/store/schema/background-jobs.d.ts +1 -1
  202. package/dist/store/schema/cleo-global/nexus.d.ts +1 -1
  203. package/dist/store/schema/cleo-global/skills.d.ts +2 -2
  204. package/dist/store/schema/cleo-project/audit.d.ts +4 -4
  205. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  206. package/dist/store/schema/cleo-project/lifecycle.d.ts +4 -4
  207. package/dist/store/schema/cleo-project/nexus-graph.d.ts +3 -3
  208. package/dist/store/schema/cleo-project/provenance-commits.d.ts +2 -2
  209. package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
  210. package/dist/store/schema/cleo-project/runtime.d.ts +3 -3
  211. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +87 -1
  212. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts.map +1 -1
  213. package/dist/store/schema/cleo-project/tasks-core-batch2.js +35 -0
  214. package/dist/store/schema/cleo-project/tasks-core-batch2.js.map +1 -1
  215. package/dist/store/schema/cleo-project/tasks-core.d.ts +183 -7
  216. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  217. package/dist/store/schema/cleo-project/tasks-core.js +52 -1
  218. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  219. package/dist/store/schema/cleo-shared/brain.d.ts +6 -6
  220. package/dist/store/schema/lifecycle.d.ts +4 -4
  221. package/dist/store/schema/manifest.d.ts +1 -1
  222. package/dist/store/schema/memory-schema.d.ts +5 -5
  223. package/dist/store/schema/nexus-schema.d.ts +3 -3
  224. package/dist/store/schema/provenance/releases.d.ts +1 -1
  225. package/dist/store/schema/skills-schema.d.ts +2 -2
  226. package/dist/store/schema/tasks.d.ts +6 -6
  227. package/dist/store/split-brain-import.d.ts +2 -14
  228. package/dist/store/split-brain-import.d.ts.map +1 -1
  229. package/dist/store/split-brain-import.js +4 -19
  230. package/dist/store/split-brain-import.js.map +1 -1
  231. package/dist/store/sqlite-data-accessor.d.ts +279 -2
  232. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  233. package/dist/store/sqlite-data-accessor.js +544 -44
  234. package/dist/store/sqlite-data-accessor.js.map +1 -1
  235. package/dist/store/sync/clock-store.d.ts +67 -0
  236. package/dist/store/sync/clock-store.d.ts.map +1 -0
  237. package/dist/store/sync/clock-store.js +117 -0
  238. package/dist/store/sync/clock-store.js.map +1 -0
  239. package/dist/store/sync/flags.d.ts +51 -0
  240. package/dist/store/sync/flags.d.ts.map +1 -0
  241. package/dist/store/sync/flags.js +81 -0
  242. package/dist/store/sync/flags.js.map +1 -0
  243. package/dist/store/sync/hlc.d.ts +115 -0
  244. package/dist/store/sync/hlc.d.ts.map +1 -0
  245. package/dist/store/sync/hlc.js +172 -0
  246. package/dist/store/sync/hlc.js.map +1 -0
  247. package/dist/store/sync/index.d.ts +20 -0
  248. package/dist/store/sync/index.d.ts.map +1 -0
  249. package/dist/store/sync/index.js +20 -0
  250. package/dist/store/sync/index.js.map +1 -0
  251. package/dist/store/sync/replica-registry.d.ts +85 -0
  252. package/dist/store/sync/replica-registry.d.ts.map +1 -0
  253. package/dist/store/sync/replica-registry.js +147 -0
  254. package/dist/store/sync/replica-registry.js.map +1 -0
  255. package/dist/store/sync/replica.d.ts +181 -0
  256. package/dist/store/sync/replica.d.ts.map +1 -0
  257. package/dist/store/sync/replica.js +305 -0
  258. package/dist/store/sync/replica.js.map +1 -0
  259. package/dist/store/sync/schema.d.ts +68 -0
  260. package/dist/store/sync/schema.d.ts.map +1 -0
  261. package/dist/store/sync/schema.js +130 -0
  262. package/dist/store/sync/schema.js.map +1 -0
  263. package/dist/store/sync/skew-hold.d.ts +71 -0
  264. package/dist/store/sync/skew-hold.d.ts.map +1 -0
  265. package/dist/store/sync/skew-hold.js +89 -0
  266. package/dist/store/sync/skew-hold.js.map +1 -0
  267. package/dist/store/table-classification.d.ts +10 -8
  268. package/dist/store/table-classification.d.ts.map +1 -1
  269. package/dist/store/table-classification.js +93 -25
  270. package/dist/store/table-classification.js.map +1 -1
  271. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  272. package/dist/store/tasks-sqlite.js +9 -1
  273. package/dist/store/tasks-sqlite.js.map +1 -1
  274. package/dist/store/twin-collapse.d.ts +113 -2
  275. package/dist/store/twin-collapse.d.ts.map +1 -1
  276. package/dist/store/twin-collapse.js +247 -19
  277. package/dist/store/twin-collapse.js.map +1 -1
  278. package/dist/store/umbrella-data-accessor.d.ts +2 -0
  279. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  280. package/dist/store/umbrella-data-accessor.js +4 -0
  281. package/dist/store/umbrella-data-accessor.js.map +1 -1
  282. package/dist/store/validation-schemas.d.ts +241 -49
  283. package/dist/store/validation-schemas.d.ts.map +1 -1
  284. package/dist/system/health.d.ts.map +1 -1
  285. package/dist/system/health.js +3 -0
  286. package/dist/system/health.js.map +1 -1
  287. package/dist/system/project-health.d.ts +9 -2
  288. package/dist/system/project-health.d.ts.map +1 -1
  289. package/dist/system/project-health.js +8 -3
  290. package/dist/system/project-health.js.map +1 -1
  291. package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
  292. package/dist/tasks/ac-coverage-gate.js +3 -0
  293. package/dist/tasks/ac-coverage-gate.js.map +1 -1
  294. package/dist/tasks/ac-table.d.ts +35 -7
  295. package/dist/tasks/ac-table.d.ts.map +1 -1
  296. package/dist/tasks/ac-table.js +119 -14
  297. package/dist/tasks/ac-table.js.map +1 -1
  298. package/dist/tasks/add.d.ts.map +1 -1
  299. package/dist/tasks/add.js +48 -2
  300. package/dist/tasks/add.js.map +1 -1
  301. package/dist/tasks/backfill-child-projections.js +47 -6
  302. package/dist/tasks/backfill-child-projections.js.map +1 -1
  303. package/dist/tasks/complete.d.ts.map +1 -1
  304. package/dist/tasks/complete.js +6 -1
  305. package/dist/tasks/complete.js.map +1 -1
  306. package/dist/tasks/completion-evaluation.d.ts.map +1 -1
  307. package/dist/tasks/completion-evaluation.js +3 -0
  308. package/dist/tasks/completion-evaluation.js.map +1 -1
  309. package/dist/tasks/evidence.d.ts.map +1 -1
  310. package/dist/tasks/evidence.js +14 -3
  311. package/dist/tasks/evidence.js.map +1 -1
  312. package/dist/validation/compliance.d.ts +5 -1
  313. package/dist/validation/compliance.d.ts.map +1 -1
  314. package/dist/validation/compliance.js +24 -3
  315. package/dist/validation/compliance.js.map +1 -1
  316. package/dist/validation/index.d.ts +1 -1
  317. package/dist/validation/index.d.ts.map +1 -1
  318. package/dist/validation/index.js +1 -1
  319. package/dist/validation/index.js.map +1 -1
  320. package/dist/validation/protocol-common.d.ts +47 -2
  321. package/dist/validation/protocol-common.d.ts.map +1 -1
  322. package/dist/validation/protocol-common.js +86 -21
  323. package/dist/validation/protocol-common.js.map +1 -1
  324. package/migrations/README.md +12 -0
  325. package/migrations/drizzle-cleo-project/20260928120000_t12341-row-uids/migration.sql +169 -0
  326. package/migrations/sync-journal/20260929140000_t12342-sync-clock/migration.sql +42 -0
  327. package/package.json +13 -13
  328. package/templates/CLEO-REFERENCE.md +4 -0
@@ -44,6 +44,10 @@ export type AcInsertRow = {
44
44
  targetTaskId?: string | null;
45
45
  projection?: string;
46
46
  contentHash?: string | null;
47
+ /** Row uid to keep (T12341); omitted → the writer mints a new one. */
48
+ uid?: string | null;
49
+ /** Birth fingerprint to keep with the uid (T12341): write-once, never re-derived. */
50
+ birthFp?: string | null;
47
51
  };
48
52
  /**
49
53
  * Canonical text used for AC hashing/idempotency. It deliberately ignores
@@ -107,6 +111,18 @@ export declare function planChildProjectionRebuild(parentId: string, children: r
107
111
  export declare function rebuildChildProjectionAc(tx: TransactionAccessor, parentId: string, children: readonly ChildProjectionAuditInput[], updatedAt: string): Promise<ChildProjectionRebuildResult>;
108
112
  /** Returns true when an AC row is the compatibility/typed projection for `childId`. */
109
113
  export declare function isChildProjectionAcRow(row: AcRow, childId: string): boolean;
114
+ /**
115
+ * Which existing criterion each incoming AC continues, as uids (T12341): an
116
+ * incoming AC with the same text as an existing one keeps that one's uid (a
117
+ * reorder keeps identity); the rest take the uid of the unclaimed existing AC
118
+ * at the same position (an in-place edit keeps identity, so its evidence
119
+ * bindings follow it); anything left gets `null` and a new uid.
120
+ *
121
+ * @param existing - Current AC rows, ordered by ordinal.
122
+ * @param incomingTexts - Incoming AC texts, in their new order.
123
+ * @returns One uid (or `null`) per incoming AC.
124
+ */
125
+ export declare function carryAcUids(existing: readonly AcRow[], incomingTexts: readonly string[]): Array<string | null>;
110
126
  /**
111
127
  * Result of `planAcUpdate` — the row + history mutations the caller must
112
128
  * apply inside a transaction.
@@ -119,11 +135,15 @@ export interface AcUpdatePlan {
119
135
  acId: string;
120
136
  previousText: string;
121
137
  reason: string;
138
+ acUid?: string | null;
122
139
  }>;
123
140
  /**
124
- * When true the caller MUST issue {@link TransactionAccessor.deleteAcRowsForTask}
125
- * BEFORE applying inserts. Used by replace-all + shrink paths to
126
- * guarantee no stale (taskId, ordinal) conflicts survive.
141
+ * When true `inserts` is the task's COMPLETE AC set: {@link applyAcPlan}
142
+ * deletes rows whose id is absent from it, updates kept ids in place and
143
+ * inserts the rest (a diff, never delete-all-then-reinsert — T12789, so
144
+ * evidence bindings on surviving ACs are never cascade-deleted). Used by
145
+ * replace-all, shrink and child-projection rebuild/removal paths. When
146
+ * false `inserts` are appended as new rows.
127
147
  */
128
148
  fullDelete: boolean;
129
149
  }
@@ -156,7 +176,7 @@ export interface AcUpdatePlan {
156
176
  * @param taskId — task being updated
157
177
  * @param existing — current AC rows from the table (ordered by ordinal ASC)
158
178
  * @param incoming — new AC items from `--acceptance "a|b|c"`
159
- * @returns plan to be applied in order: appendAcHistory → deleteAcRowsForTask (if fullDelete) → insertAcRows
179
+ * @returns plan to be applied with {@link applyAcPlan}
160
180
  */
161
181
  export declare function planAcUpdate(taskId: string, existing: readonly AcRow[], incoming: readonly AcceptanceItem[]): AcUpdatePlan;
162
182
  /**
@@ -166,14 +186,22 @@ export declare function planAcUpdate(taskId: string, existing: readonly AcRow[],
166
186
  export declare function planChildProjectionRemoval(parentId: string, existing: readonly AcRow[], childId: string, reason: 'delete' | 'archive'): AcUpdatePlan;
167
187
  /** Remove a direct child's parent-owned AC projection from row + legacy views. */
168
188
  export declare function removeChildProjectionAc(tx: TransactionAccessor, parentId: string, childId: string, reason: 'delete' | 'archive', updatedAt: string): Promise<boolean>;
189
+ /**
190
+ * The subset of {@link TransactionAccessor} that {@link applyAcPlan} writes
191
+ * through — any open transaction accessor satisfies it.
192
+ *
193
+ * @task T12789
194
+ */
195
+ export type AcPlanWriter = Pick<TransactionAccessor, 'appendAcHistory' | 'getAcRows' | 'deleteAcRowsByIds' | 'updateAcRows' | 'insertAcRows'>;
169
196
  /**
170
197
  * Convenience executor — apply an {@link AcUpdatePlan} against a transaction
171
- * accessor in the required order: history append → delete (if requested) →
172
- * insert. Caller MUST have already opened a transaction.
198
+ * accessor in the required order: history append → (for `fullDelete`) delete
199
+ * the ids that leave the set, update kept ids in place → insert new ids.
200
+ * Caller MUST have already opened a transaction.
173
201
  *
174
202
  * @param tx — open transaction accessor
175
203
  * @param taskId — task whose AC rows are being mutated
176
204
  * @param plan — pre-computed plan from {@link planAcUpdate} or {@link buildFreshAcRows}
177
205
  */
178
- export declare function applyAcPlan(tx: TransactionAccessor, taskId: string, plan: AcUpdatePlan): Promise<void>;
206
+ export declare function applyAcPlan(tx: AcPlanWriter, taskId: string, plan: AcUpdatePlan): Promise<void>;
179
207
  //# sourceMappingURL=ac-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ac-table.d.ts","sourceRoot":"","sources":["../../src/tasks/ac-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ac-table.d.ts","sourceRoot":"","sources":["../../src/tasks/ac-table.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,17 @@ export function acItemToText(item) {
31
31
  // JSON-parse when they detect a leading `{`.
32
32
  return stableStringify(item);
33
33
  }
34
+ /**
35
+ * The identity a re-inserted criterion keeps (T12341): its uid AND its birth
36
+ * fingerprint. The fingerprint is write-once; dropping it on a delete-and-
37
+ * reinsert would let the fill re-derive it from the NEW text, and every edit
38
+ * would then sync as a uid collision.
39
+ */
40
+ function carriedIdentity(row) {
41
+ if (!row?.uid)
42
+ return {};
43
+ return { uid: row.uid, ...(row.birthFp ? { birthFp: row.birthFp } : {}) };
44
+ }
34
45
  /** Deterministically stringify structured AC objects by sorting object keys recursively. */
35
46
  function stableStringify(value) {
36
47
  if (value === null || typeof value !== 'object')
@@ -191,11 +202,13 @@ function acRowToInsertRow(row) {
191
202
  targetTaskId: row.targetTaskId,
192
203
  projection: row.projection,
193
204
  contentHash: row.contentHash,
205
+ ...carriedIdentity(row),
194
206
  };
195
207
  }
196
- function buildChildProjectionInsertRow(parentId, child, ordinal) {
208
+ function buildChildProjectionInsertRow(parentId, child, ordinal, carried) {
197
209
  const sourceKey = childProjectionSourceKey(child.id);
198
210
  return {
211
+ ...carriedIdentity(carried),
199
212
  id: buildAcRowId(parentId, sourceKey),
200
213
  taskId: parentId,
201
214
  ordinal,
@@ -369,7 +382,9 @@ export function planChildProjectionRebuild(parentId, children, existing) {
369
382
  const childRows = existing.filter(isChildProjectionCandidate);
370
383
  const nonChildInserts = nonChildRows.map(acRowToInsertRow);
371
384
  const maxNonChildOrdinal = nonChildInserts.reduce((max, row) => (row.ordinal > max ? row.ordinal : max), 0);
372
- const childInserts = children.map((child, index) => buildChildProjectionInsertRow(parentId, child, maxNonChildOrdinal + index + 1));
385
+ // A child's projection row keeps its uid across rebuilds (T12341).
386
+ const childUids = new Map(childRows.map((row) => [row.targetTaskId ?? row.sourceKey, row]));
387
+ const childInserts = children.map((child, index) => buildChildProjectionInsertRow(parentId, child, maxNonChildOrdinal + index + 1, childUids.get(child.id) ?? childUids.get(childProjectionSourceKey(child.id))));
373
388
  const inserts = [...nonChildInserts, ...childInserts];
374
389
  assertUniqueGeneratedRows(parentId, inserts);
375
390
  return {
@@ -377,6 +392,7 @@ export function planChildProjectionRebuild(parentId, children, existing) {
377
392
  inserts,
378
393
  history: childRows.map((row) => ({
379
394
  acId: row.id,
395
+ ...(row.uid ? { acUid: row.uid } : {}),
380
396
  previousText: row.text,
381
397
  reason: 'projection_rebuild',
382
398
  })),
@@ -408,6 +424,38 @@ export function isChildProjectionAcRow(row, childId) {
408
424
  row.sourceKey === `child:${childId}` ||
409
425
  row.text.startsWith(`Complete child ${childId}: `));
410
426
  }
427
+ /**
428
+ * Which existing criterion each incoming AC continues, as uids (T12341): an
429
+ * incoming AC with the same text as an existing one keeps that one's uid (a
430
+ * reorder keeps identity); the rest take the uid of the unclaimed existing AC
431
+ * at the same position (an in-place edit keeps identity, so its evidence
432
+ * bindings follow it); anything left gets `null` and a new uid.
433
+ *
434
+ * @param existing - Current AC rows, ordered by ordinal.
435
+ * @param incomingTexts - Incoming AC texts, in their new order.
436
+ * @returns One uid (or `null`) per incoming AC.
437
+ */
438
+ export function carryAcUids(existing, incomingTexts) {
439
+ const out = incomingTexts.map(() => null);
440
+ const claimed = new Set();
441
+ incomingTexts.forEach((text, i) => {
442
+ const j = existing.findIndex((row, k) => !claimed.has(k) && row.uid && row.text === text);
443
+ if (j >= 0) {
444
+ claimed.add(j);
445
+ out[i] = existing[j]?.uid ?? null;
446
+ }
447
+ });
448
+ incomingTexts.forEach((_, i) => {
449
+ if (out[i] !== null || claimed.has(i))
450
+ return;
451
+ const row = existing[i];
452
+ if (!row?.uid)
453
+ return;
454
+ claimed.add(i);
455
+ out[i] = row.uid;
456
+ });
457
+ return out;
458
+ }
411
459
  /**
412
460
  * Plan the AC table mutations for a `cleo update --acceptance` call.
413
461
  *
@@ -437,7 +485,7 @@ export function isChildProjectionAcRow(row, childId) {
437
485
  * @param taskId — task being updated
438
486
  * @param existing — current AC rows from the table (ordered by ordinal ASC)
439
487
  * @param incoming — new AC items from `--acceptance "a|b|c"`
440
- * @returns plan to be applied in order: appendAcHistory → deleteAcRowsForTask (if fullDelete) → insertAcRows
488
+ * @returns plan to be applied with {@link applyAcPlan}
441
489
  */
442
490
  export function planAcUpdate(taskId, existing, incoming) {
443
491
  const incomingTexts = incoming.map(acItemToText);
@@ -464,13 +512,14 @@ export function planAcUpdate(taskId, existing, incoming) {
464
512
  const tailRows = existing.slice(incomingTexts.length);
465
513
  const history = tailRows.map((row) => ({
466
514
  acId: row.id,
515
+ ...(row.uid ? { acUid: row.uid } : {}),
467
516
  previousText: row.text,
468
517
  reason: 'edit',
469
518
  }));
470
- // For shrink we DO need to delete the tail. We use the
471
- // fullDelete-then-reinsert approach to keep the codepath uniform
472
- // (insertAcRows below uses the kept prefix rows with their EXISTING
473
- // ids + ordinals so binding stability survives).
519
+ // For shrink we DO need to delete the tail. The plan lists the kept
520
+ // prefix rows with their EXISTING ids + ordinals as the complete set;
521
+ // applyAcPlan's diff deletes only the tail ids, so the kept rows (and
522
+ // their evidence bindings) are never touched.
474
523
  const keepInserts = existing.slice(0, incomingTexts.length).map((row) => ({
475
524
  id: row.id,
476
525
  taskId,
@@ -481,6 +530,7 @@ export function planAcUpdate(taskId, existing, incoming) {
481
530
  targetTaskId: row.targetTaskId,
482
531
  projection: row.projection,
483
532
  contentHash: row.contentHash,
533
+ ...carriedIdentity(row),
484
534
  }));
485
535
  return { inserts: keepInserts, history, fullDelete: true };
486
536
  }
@@ -488,12 +538,16 @@ export function planAcUpdate(taskId, existing, incoming) {
488
538
  // Case 3: replace-all (mid-edit, reorder, mixed, or text drift).
489
539
  const history = existing.map((row) => ({
490
540
  acId: row.id,
541
+ ...(row.uid ? { acUid: row.uid } : {}),
491
542
  previousText: row.text,
492
543
  reason: 'edit',
493
544
  }));
545
+ const uids = carryAcUids(existing, incomingTexts);
494
546
  const inserts = incoming.map((item, idx) => {
495
547
  const ordinal = idx + 1;
496
- return buildInsertRow(taskId, item, ordinal);
548
+ const uid = uids[idx];
549
+ const carried = uid ? existing.find((row) => row.uid === uid) : undefined;
550
+ return { ...buildInsertRow(taskId, item, ordinal), ...carriedIdentity(carried) };
497
551
  });
498
552
  assertUniqueGeneratedRows(taskId, inserts);
499
553
  return { inserts, history, fullDelete: true };
@@ -518,9 +572,11 @@ export function planChildProjectionRemoval(parentId, existing, childId, reason)
518
572
  targetTaskId: row.targetTaskId,
519
573
  projection: row.projection,
520
574
  contentHash: row.contentHash,
575
+ ...carriedIdentity(row),
521
576
  }));
522
577
  const history = removed.map((row) => ({
523
578
  acId: row.id,
579
+ ...(row.uid ? { acUid: row.uid } : {}),
524
580
  previousText: row.text,
525
581
  reason,
526
582
  }));
@@ -542,8 +598,9 @@ export async function removeChildProjectionAc(tx, parentId, childId, reason, upd
542
598
  }
543
599
  /**
544
600
  * Convenience executor — apply an {@link AcUpdatePlan} against a transaction
545
- * accessor in the required order: history append → delete (if requested) →
546
- * insert. Caller MUST have already opened a transaction.
601
+ * accessor in the required order: history append → (for `fullDelete`) delete
602
+ * the ids that leave the set, update kept ids in place → insert new ids.
603
+ * Caller MUST have already opened a transaction.
547
604
  *
548
605
  * @param tx — open transaction accessor
549
606
  * @param taskId — task whose AC rows are being mutated
@@ -553,11 +610,59 @@ export async function applyAcPlan(tx, taskId, plan) {
553
610
  if (plan.history.length > 0) {
554
611
  await tx.appendAcHistory(plan.history);
555
612
  }
556
- if (plan.fullDelete) {
557
- await tx.deleteAcRowsForTask(taskId);
613
+ if (!plan.fullDelete) {
614
+ if (plan.inserts.length > 0) {
615
+ await tx.insertAcRows(plan.inserts);
616
+ }
617
+ return;
618
+ }
619
+ // `fullDelete` means "the task's AC set becomes exactly `plan.inserts`".
620
+ // It is applied as a DIFF, never as delete-all-then-reinsert (T12789):
621
+ // deleting a row fires `ON DELETE CASCADE` on its evidence bindings wherever
622
+ // that FK is declared and enforced, so a wholesale delete would wipe the
623
+ // bindings of every AC that survives the edit unchanged under the same id.
624
+ // Only ids that leave the set are deleted; kept ids are updated in place.
625
+ const existing = await tx.getAcRows(taskId);
626
+ const existingById = new Map(existing.map((row) => [row.id, row]));
627
+ const targetIds = new Set(plan.inserts.map((row) => row.id));
628
+ const removedIds = existing.filter((row) => !targetIds.has(row.id)).map((row) => row.id);
629
+ const changed = plan.inserts.filter((row) => {
630
+ const current = existingById.get(row.id);
631
+ return current !== undefined && acRowDiffers(current, row);
632
+ });
633
+ const fresh = plan.inserts.filter((row) => !existingById.has(row.id));
634
+ if (removedIds.length > 0) {
635
+ // An edited criterion leaves under its old id and returns under a new id
636
+ // with the same uid: its bindings stay (stale until re-verified, T12341).
637
+ const carried = new Set(fresh.map((row) => row.uid).filter((u) => !!u));
638
+ const keep = existing
639
+ .filter((row) => removedIds.includes(row.id) && row.uid && carried.has(row.uid))
640
+ .map((row) => row.uid);
641
+ await tx.deleteAcRowsByIds(taskId, removedIds, keep);
642
+ }
643
+ if (changed.length > 0) {
644
+ // Park every changed row on a unique negative ordinal and a unique source
645
+ // key first: UNIQUE (task_id, ordinal) / (task_id, source_key) are checked
646
+ // per statement, so a reorder (A:1→2, B:2→1) collides mid-way otherwise.
647
+ await tx.updateAcRows(changed.map((row, index) => ({
648
+ ...row,
649
+ ordinal: -(index + 1),
650
+ sourceKey: `reorder:${row.id}`,
651
+ })));
652
+ await tx.updateAcRows(changed);
558
653
  }
559
- if (plan.inserts.length > 0) {
560
- await tx.insertAcRows(plan.inserts);
654
+ if (fresh.length > 0) {
655
+ await tx.insertAcRows(fresh);
561
656
  }
562
657
  }
658
+ /** True when applying `next` to the stored row `current` would change any column. */
659
+ function acRowDiffers(current, next) {
660
+ return (current.ordinal !== next.ordinal ||
661
+ current.text !== next.text ||
662
+ current.kind !== (next.kind ?? 'text') ||
663
+ current.sourceKey !== (next.sourceKey ?? `text:${next.ordinal}`) ||
664
+ current.targetTaskId !== (next.targetTaskId ?? null) ||
665
+ current.projection !== (next.projection ?? 'legacy') ||
666
+ current.contentHash !== (next.contentHash ?? null));
667
+ }
563
668
  //# sourceMappingURL=ac-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ac-table.js","sourceRoot":"","sources":["../../src/tasks/ac-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ac-table.js","sourceRoot":"","sources":["../../src/tasks/ac-table.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/tasks/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/tasks/add.ts"],"names":[],"mappings":"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"}
package/dist/tasks/add.js CHANGED
@@ -942,8 +942,26 @@ export async function addTask(options, cwd, accessor) {
942
942
  // `task`) and silently create the wrong tier rather than refusing.
943
943
  const childTypeForParent = taskType ?? childTypeForParentType(parentTypeForValidation);
944
944
  if (!isAllowedWorkGraphParentType(childTypeForParent, parentTypeForValidation)) {
945
+ // T12756: name the exact tier the parent accepts (e.g. `--type task`
946
+ // under a task → `--type subtask`) instead of only restating the matrix.
947
+ const acceptedChildType = childTypeForParentType(parentTypeForValidation);
948
+ const canSuggestType = acceptedChildType !== childTypeForParent &&
949
+ isAllowedWorkGraphParentType(acceptedChildType, parentTypeForValidation);
950
+ const containment = 'Use Saga→Epic, Epic→Task, and Task→Subtask containment.';
945
951
  throw new CleoError(ExitCode.VALIDATION_ERROR, `Invalid parent type for ${taskType}: parent ${parentId} has type '${parentTask.type}'.`, {
946
- fix: 'Use Saga→Epic, Epic→Task, and Task→Subtask containment.',
952
+ fix: canSuggestType
953
+ ? `Use --type ${acceptedChildType}: a ${parentTypeForValidation} holds ` +
954
+ `${acceptedChildType}s, so \`cleo add "<title>" --type ${acceptedChildType} ` +
955
+ `--parent ${parentId} --acceptance "<criteria>"\` files it here. ${containment}`
956
+ : containment,
957
+ ...(canSuggestType && {
958
+ alternatives: [
959
+ {
960
+ action: `File it as a ${acceptedChildType} under ${parentId}`,
961
+ command: `cleo add "<title>" --type ${acceptedChildType} --parent ${parentId} --acceptance "<criteria>"`,
962
+ },
963
+ ],
964
+ }),
947
965
  details: {
948
966
  field: 'parentId',
949
967
  expected: 'saga->epic | epic->task | task->subtask',
@@ -1028,13 +1046,24 @@ export async function addTask(options, cwd, accessor) {
1028
1046
  }
1029
1047
  }
1030
1048
  else if (parentHasTextAc) {
1049
+ // T12756: the usual intent is "related follow-up work", which belongs as a
1050
+ // SIBLING under the leaf's own container (typically its epic) linked back
1051
+ // with --relates, plus a dependency edge from the leaf onto the new task.
1052
+ const siblingContainerId = parentTaskForProjection.parentId ?? null;
1053
+ const siblingAddCommand = `cleo add "<title>"` +
1054
+ (siblingContainerId ? ` --parent ${siblingContainerId}` : '') +
1055
+ ` --relates ${parentId} --acceptance "<criteria>"`;
1056
+ const siblingDependsCommand = `cleo update ${parentId} --add-depends <new>`;
1031
1057
  throw new CleoError(ExitCode.VALIDATION_ERROR, `Cannot add child under ${parentId}: it is a ${parentTaskForProjection.type} with its ` +
1032
1058
  `own free-text acceptance criteria, and adding a child would mix hand-authored text ` +
1033
1059
  `ACs with machine-managed child_task projections (PM-Core V2 design-point 3). A ` +
1034
1060
  `${parentTaskForProjection.type} must be either a leaf defined by its own text ACs OR ` +
1035
1061
  `a container defined by its children, not both. (Epics and sagas are exempt — they are ` +
1036
1062
  `containers by design.)`, {
1037
- fix: `Re-run this add with --auto-decompose to do it in one step, or run ` +
1063
+ fix: `To keep ${parentId} a leaf, file the new work as a sibling instead: ` +
1064
+ `\`${siblingAddCommand}\` then \`${siblingDependsCommand}\` ` +
1065
+ `(the new task's id replaces <new>). ` +
1066
+ `Otherwise re-run this add with --auto-decompose to do it in one step, or run ` +
1038
1067
  `\`cleo decompose ${parentId}\` first — either moves ${parentId}'s text acceptance ` +
1039
1068
  `criteria onto a new first child in one step, leaving ${parentId} a pure ` +
1040
1069
  `container, after which this add succeeds. (Or promote ${parentId} to an epic ` +
@@ -1047,7 +1076,24 @@ export async function addTask(options, cwd, accessor) {
1047
1076
  parentType: parentTaskForProjection.type,
1048
1077
  textAcCount: parentAcRows.filter((row) => row.kind === 'text').length,
1049
1078
  reason: 'mixed_parent_text_ac_plus_child',
1079
+ siblingContainerId,
1050
1080
  },
1081
+ alternatives: [
1082
+ {
1083
+ action: siblingContainerId
1084
+ ? `File it as a sibling under ${siblingContainerId}, related to ${parentId}`
1085
+ : `File it as a root-level task related to ${parentId}`,
1086
+ command: siblingAddCommand,
1087
+ },
1088
+ {
1089
+ action: `Make ${parentId} depend on the new sibling`,
1090
+ command: siblingDependsCommand,
1091
+ },
1092
+ {
1093
+ action: `Turn ${parentId} into a container, then add the child`,
1094
+ command: `cleo decompose ${parentId}`,
1095
+ },
1096
+ ],
1051
1097
  });
1052
1098
  }
1053
1099
  }