@cleocode/core 2026.9.24 → 2026.9.26

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 (481) hide show
  1. package/dist/admin/import-tasks.d.ts.map +1 -1
  2. package/dist/admin/import-tasks.js +5 -2
  3. package/dist/admin/import-tasks.js.map +1 -1
  4. package/dist/admin/import.d.ts.map +1 -1
  5. package/dist/admin/import.js +7 -2
  6. package/dist/admin/import.js.map +1 -1
  7. package/dist/audit-prune.d.ts +32 -0
  8. package/dist/audit-prune.d.ts.map +1 -1
  9. package/dist/audit-prune.js +37 -3
  10. package/dist/audit-prune.js.map +1 -1
  11. package/dist/build-provenance.json +2 -2
  12. package/dist/cloud/crypto.d.ts +1 -2
  13. package/dist/cloud/crypto.d.ts.map +1 -1
  14. package/dist/cloud/crypto.js +1 -11
  15. package/dist/cloud/crypto.js.map +1 -1
  16. package/dist/cloud/index.d.ts +1 -0
  17. package/dist/cloud/index.d.ts.map +1 -1
  18. package/dist/cloud/index.js +1 -0
  19. package/dist/cloud/index.js.map +1 -1
  20. package/dist/cloud/nexus-auth.d.ts +26 -1
  21. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  22. package/dist/cloud/nexus-auth.js +61 -32
  23. package/dist/cloud/nexus-auth.js.map +1 -1
  24. package/dist/cloud/nexus-credentials.js +2 -2
  25. package/dist/cloud/nexus-credentials.js.map +1 -1
  26. package/dist/cloud/nexus-device.d.ts +809 -0
  27. package/dist/cloud/nexus-device.d.ts.map +1 -0
  28. package/dist/cloud/nexus-device.js +1680 -0
  29. package/dist/cloud/nexus-device.js.map +1 -0
  30. package/dist/cloud/nexus-enrol.d.ts +210 -0
  31. package/dist/cloud/nexus-enrol.d.ts.map +1 -0
  32. package/dist/cloud/nexus-enrol.js +1023 -0
  33. package/dist/cloud/nexus-enrol.js.map +1 -0
  34. package/dist/cloud/nexus-link.d.ts +3 -0
  35. package/dist/cloud/nexus-link.d.ts.map +1 -1
  36. package/dist/cloud/nexus-link.js +38 -4
  37. package/dist/cloud/nexus-link.js.map +1 -1
  38. package/dist/cloud/signing.d.ts +20 -0
  39. package/dist/cloud/signing.d.ts.map +1 -1
  40. package/dist/cloud/signing.js +14 -0
  41. package/dist/cloud/signing.js.map +1 -1
  42. package/dist/cloud/uuidv7.d.ts +9 -0
  43. package/dist/cloud/uuidv7.d.ts.map +1 -0
  44. package/dist/cloud/uuidv7.js +19 -0
  45. package/dist/cloud/uuidv7.js.map +1 -0
  46. package/dist/crypto/credentials.d.ts +61 -0
  47. package/dist/crypto/credentials.d.ts.map +1 -1
  48. package/dist/crypto/credentials.js +154 -58
  49. package/dist/crypto/credentials.js.map +1 -1
  50. package/dist/decide/bench/index.d.ts +1 -1
  51. package/dist/decide/bench/index.d.ts.map +1 -1
  52. package/dist/decide/bench/index.js +1 -1
  53. package/dist/decide/bench/index.js.map +1 -1
  54. package/dist/decide/bench/operation.d.ts +1 -1
  55. package/dist/decide/bench/operation.d.ts.map +1 -1
  56. package/dist/decide/bench/operation.js +1 -1
  57. package/dist/decide/bench/operation.js.map +1 -1
  58. package/dist/decide/bench/profiles.d.ts +50 -22
  59. package/dist/decide/bench/profiles.d.ts.map +1 -1
  60. package/dist/decide/bench/profiles.js +103 -59
  61. package/dist/decide/bench/profiles.js.map +1 -1
  62. package/dist/decide/bench/report.d.ts.map +1 -1
  63. package/dist/decide/bench/report.js +6 -1
  64. package/dist/decide/bench/report.js.map +1 -1
  65. package/dist/decide/bench/runner.d.ts +6 -1
  66. package/dist/decide/bench/runner.d.ts.map +1 -1
  67. package/dist/decide/bench/runner.js +1 -0
  68. package/dist/decide/bench/runner.js.map +1 -1
  69. package/dist/decide/client.d.ts.map +1 -1
  70. package/dist/decide/client.js +11 -5
  71. package/dist/decide/client.js.map +1 -1
  72. package/dist/decide/jev-wire.d.ts +31 -1
  73. package/dist/decide/jev-wire.d.ts.map +1 -1
  74. package/dist/decide/jev-wire.js +61 -7
  75. package/dist/decide/jev-wire.js.map +1 -1
  76. package/dist/docs/export-document.js +12907 -10622
  77. package/dist/docs/export-document.js.map +3 -3
  78. package/dist/doctor/dependency-cycles.d.ts +41 -0
  79. package/dist/doctor/dependency-cycles.d.ts.map +1 -0
  80. package/dist/doctor/dependency-cycles.js +39 -0
  81. package/dist/doctor/dependency-cycles.js.map +1 -0
  82. package/dist/doctor/index.d.ts +2 -0
  83. package/dist/doctor/index.d.ts.map +1 -1
  84. package/dist/doctor/index.js +1 -0
  85. package/dist/doctor/index.js.map +1 -1
  86. package/dist/doctor/orphan-ac-bindings.d.ts +64 -0
  87. package/dist/doctor/orphan-ac-bindings.d.ts.map +1 -0
  88. package/dist/doctor/orphan-ac-bindings.js +59 -0
  89. package/dist/doctor/orphan-ac-bindings.js.map +1 -0
  90. package/dist/doctor/projects.d.ts.map +1 -1
  91. package/dist/doctor/projects.js +43 -29
  92. package/dist/doctor/projects.js.map +1 -1
  93. package/dist/doctor/row-identity.d.ts +42 -0
  94. package/dist/doctor/row-identity.d.ts.map +1 -0
  95. package/dist/doctor/row-identity.js +151 -0
  96. package/dist/doctor/row-identity.js.map +1 -0
  97. package/dist/doctor/twin-collapse.d.ts +58 -2
  98. package/dist/doctor/twin-collapse.d.ts.map +1 -1
  99. package/dist/doctor/twin-collapse.js +212 -14
  100. package/dist/doctor/twin-collapse.js.map +1 -1
  101. package/dist/error-catalog.d.ts.map +1 -1
  102. package/dist/error-catalog.js +4 -0
  103. package/dist/error-catalog.js.map +1 -1
  104. package/dist/error-registry.d.ts.map +1 -1
  105. package/dist/error-registry.js +8 -0
  106. package/dist/error-registry.js.map +1 -1
  107. package/dist/lifecycle/verification/satisfies-validator.d.ts.map +1 -1
  108. package/dist/lifecycle/verification/satisfies-validator.js +10 -0
  109. package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
  110. package/dist/llm/plugin-facade.js +17767 -15482
  111. package/dist/llm/plugin-facade.js.map +3 -3
  112. package/dist/memory/index.d.ts.map +1 -1
  113. package/dist/memory/index.js +19 -10
  114. package/dist/memory/index.js.map +1 -1
  115. package/dist/memory/manifest-identity.d.ts +171 -0
  116. package/dist/memory/manifest-identity.d.ts.map +1 -0
  117. package/dist/memory/manifest-identity.js +345 -0
  118. package/dist/memory/manifest-identity.js.map +1 -0
  119. package/dist/memory/mental-model-queue.d.ts +14 -4
  120. package/dist/memory/mental-model-queue.d.ts.map +1 -1
  121. package/dist/memory/mental-model-queue.js +64 -35
  122. package/dist/memory/mental-model-queue.js.map +1 -1
  123. package/dist/memory/pipeline-manifest-sqlite.d.ts +47 -5
  124. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  125. package/dist/memory/pipeline-manifest-sqlite.js +130 -14
  126. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  127. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  128. package/dist/memory/retrieval/observe.js +2 -0
  129. package/dist/memory/retrieval/observe.js.map +1 -1
  130. package/dist/memory/transcript-scanner.js +1 -1
  131. package/dist/nexus/deps.d.ts.map +1 -1
  132. package/dist/nexus/deps.js +7 -14
  133. package/dist/nexus/deps.js.map +1 -1
  134. package/dist/nexus/discover.d.ts.map +1 -1
  135. package/dist/nexus/discover.js +6 -9
  136. package/dist/nexus/discover.js.map +1 -1
  137. package/dist/nexus/git-state.d.ts.map +1 -1
  138. package/dist/nexus/git-state.js +10 -1
  139. package/dist/nexus/git-state.js.map +1 -1
  140. package/dist/nexus/projects-clean.d.ts.map +1 -1
  141. package/dist/nexus/projects-clean.js +22 -11
  142. package/dist/nexus/projects-clean.js.map +1 -1
  143. package/dist/nexus/projects-scan.d.ts.map +1 -1
  144. package/dist/nexus/projects-scan.js +8 -13
  145. package/dist/nexus/projects-scan.js.map +1 -1
  146. package/dist/nexus/query.d.ts.map +1 -1
  147. package/dist/nexus/query.js +4 -12
  148. package/dist/nexus/query.js.map +1 -1
  149. package/dist/nexus/registry-roots.d.ts +5 -2
  150. package/dist/nexus/registry-roots.d.ts.map +1 -1
  151. package/dist/nexus/registry-roots.js +8 -10
  152. package/dist/nexus/registry-roots.js.map +1 -1
  153. package/dist/nexus/registry.d.ts +18 -0
  154. package/dist/nexus/registry.d.ts.map +1 -1
  155. package/dist/nexus/registry.js +37 -16
  156. package/dist/nexus/registry.js.map +1 -1
  157. package/dist/nexus/workspace.d.ts.map +1 -1
  158. package/dist/nexus/workspace.js +54 -4
  159. package/dist/nexus/workspace.js.map +1 -1
  160. package/dist/orchestrate/lifecycle-ops.js +1 -1
  161. package/dist/orchestrate/lifecycle-ops.js.map +1 -1
  162. package/dist/orchestrate/pivot.d.ts.map +1 -1
  163. package/dist/orchestrate/pivot.js +4 -2
  164. package/dist/orchestrate/pivot.js.map +1 -1
  165. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  166. package/dist/orchestrate/query-ops.js +3 -3
  167. package/dist/orchestrate/query-ops.js.map +1 -1
  168. package/dist/orchestrate/spawn-ops.js +1 -1
  169. package/dist/orchestrate/spawn-ops.js.map +1 -1
  170. package/dist/orchestrate/worktree-complete.d.ts.map +1 -1
  171. package/dist/orchestrate/worktree-complete.js +40 -2
  172. package/dist/orchestrate/worktree-complete.js.map +1 -1
  173. package/dist/orchestration/index.js +1 -1
  174. package/dist/orchestration/index.js.map +1 -1
  175. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  176. package/dist/orchestration/lead-rollup.js +3 -3
  177. package/dist/orchestration/lead-rollup.js.map +1 -1
  178. package/dist/orchestration/parallel.js +1 -1
  179. package/dist/orchestration/parallel.js.map +1 -1
  180. package/dist/orchestration/spawn-prompt.d.ts +26 -0
  181. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  182. package/dist/orchestration/spawn-prompt.js +62 -91
  183. package/dist/orchestration/spawn-prompt.js.map +1 -1
  184. package/dist/orchestration/wave-topic.d.ts +4 -2
  185. package/dist/orchestration/wave-topic.d.ts.map +1 -1
  186. package/dist/orchestration/wave-topic.js +6 -4
  187. package/dist/orchestration/wave-topic.js.map +1 -1
  188. package/dist/orchestration/waves.d.ts +2 -1
  189. package/dist/orchestration/waves.d.ts.map +1 -1
  190. package/dist/orchestration/waves.js +4 -3
  191. package/dist/orchestration/waves.js.map +1 -1
  192. package/dist/phases/index.d.ts.map +1 -1
  193. package/dist/phases/index.js +4 -2
  194. package/dist/phases/index.js.map +1 -1
  195. package/dist/release/ci-evidence.d.ts +190 -0
  196. package/dist/release/ci-evidence.d.ts.map +1 -1
  197. package/dist/release/ci-evidence.js +436 -4
  198. package/dist/release/ci-evidence.js.map +1 -1
  199. package/dist/sdk/validator-ac-pull.d.ts.map +1 -1
  200. package/dist/sdk/validator-ac-pull.js +2 -1
  201. package/dist/sdk/validator-ac-pull.js.map +1 -1
  202. package/dist/selfimprove/fix-gen.js +12807 -10522
  203. package/dist/selfimprove/fix-gen.js.map +3 -3
  204. package/dist/sentient/cross-project-hygiene.d.ts +5 -0
  205. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  206. package/dist/sentient/cross-project-hygiene.js +7 -1
  207. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  208. package/dist/sentient/propose-tick.d.ts.map +1 -1
  209. package/dist/sentient/propose-tick.js +2 -3
  210. package/dist/sentient/propose-tick.js.map +1 -1
  211. package/dist/sentient/stage-drift-tick.d.ts.map +1 -1
  212. package/dist/sentient/stage-drift-tick.js +2 -3
  213. package/dist/sentient/stage-drift-tick.js.map +1 -1
  214. package/dist/session/engine-ops.d.ts.map +1 -1
  215. package/dist/session/engine-ops.js +77 -49
  216. package/dist/session/engine-ops.js.map +1 -1
  217. package/dist/sessions/focus-state-store.d.ts +69 -23
  218. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  219. package/dist/sessions/focus-state-store.js +113 -27
  220. package/dist/sessions/focus-state-store.js.map +1 -1
  221. package/dist/sessions/handoff.js +1 -1
  222. package/dist/sessions/handoff.js.map +1 -1
  223. package/dist/sessions/index.d.ts.map +1 -1
  224. package/dist/sessions/index.js +24 -13
  225. package/dist/sessions/index.js.map +1 -1
  226. package/dist/sessions/terminal-identity.d.ts +165 -17
  227. package/dist/sessions/terminal-identity.d.ts.map +1 -1
  228. package/dist/sessions/terminal-identity.js +341 -32
  229. package/dist/sessions/terminal-identity.js.map +1 -1
  230. package/dist/skills/manifests/research.js +2 -0
  231. package/dist/skills/manifests/research.js.map +1 -1
  232. package/dist/skills/orchestrator/startup.js +2 -2
  233. package/dist/skills/orchestrator/startup.js.map +1 -1
  234. package/dist/skills/orchestrator/validator.d.ts.map +1 -1
  235. package/dist/skills/orchestrator/validator.js +9 -2
  236. package/dist/skills/orchestrator/validator.js.map +1 -1
  237. package/dist/skills/validation.d.ts +4 -1
  238. package/dist/skills/validation.d.ts.map +1 -1
  239. package/dist/skills/validation.js +11 -3
  240. package/dist/skills/validation.js.map +1 -1
  241. package/dist/snapshot/index.d.ts +4 -0
  242. package/dist/snapshot/index.d.ts.map +1 -1
  243. package/dist/snapshot/index.js +50 -3
  244. package/dist/snapshot/index.js.map +1 -1
  245. package/dist/spawn/branch-lock.d.ts +111 -7
  246. package/dist/spawn/branch-lock.d.ts.map +1 -1
  247. package/dist/spawn/branch-lock.js +296 -8
  248. package/dist/spawn/branch-lock.js.map +1 -1
  249. package/dist/store/ac-binding-prune.d.ts +144 -0
  250. package/dist/store/ac-binding-prune.d.ts.map +1 -0
  251. package/dist/store/ac-binding-prune.js +293 -0
  252. package/dist/store/ac-binding-prune.js.map +1 -0
  253. package/dist/store/agent-registry-store.d.ts.map +1 -1
  254. package/dist/store/agent-registry-store.js +3 -2
  255. package/dist/store/agent-registry-store.js.map +1 -1
  256. package/dist/store/backup-sidecar.d.ts +85 -2
  257. package/dist/store/backup-sidecar.d.ts.map +1 -1
  258. package/dist/store/backup-sidecar.js +173 -1
  259. package/dist/store/backup-sidecar.js.map +1 -1
  260. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  261. package/dist/store/conduit-sqlite.js +3 -2
  262. package/dist/store/conduit-sqlite.js.map +1 -1
  263. package/dist/store/credential-transfer.d.ts.map +1 -1
  264. package/dist/store/credential-transfer.js +3 -0
  265. package/dist/store/credential-transfer.js.map +1 -1
  266. package/dist/store/db-helpers.d.ts +32 -13
  267. package/dist/store/db-helpers.d.ts.map +1 -1
  268. package/dist/store/db-helpers.js +144 -40
  269. package/dist/store/db-helpers.js.map +1 -1
  270. package/dist/store/dependency-cycles.d.ts +164 -0
  271. package/dist/store/dependency-cycles.d.ts.map +1 -0
  272. package/dist/store/dependency-cycles.js +360 -0
  273. package/dist/store/dependency-cycles.js.map +1 -0
  274. package/dist/store/display-id-alias.d.ts +585 -0
  275. package/dist/store/display-id-alias.d.ts.map +1 -0
  276. package/dist/store/display-id-alias.js +1538 -0
  277. package/dist/store/display-id-alias.js.map +1 -0
  278. package/dist/store/dual-scope-db.d.ts.map +1 -1
  279. package/dist/store/dual-scope-db.js +48 -0
  280. package/dist/store/dual-scope-db.js.map +1 -1
  281. package/dist/store/exodus/migrate.d.ts.map +1 -1
  282. package/dist/store/exodus/migrate.js +8 -1
  283. package/dist/store/exodus/migrate.js.map +1 -1
  284. package/dist/store/exodus/reconcile.d.ts.map +1 -1
  285. package/dist/store/exodus/reconcile.js +7 -2
  286. package/dist/store/exodus/reconcile.js.map +1 -1
  287. package/dist/store/exodus/recovery.d.ts.map +1 -1
  288. package/dist/store/exodus/recovery.js +20 -1
  289. package/dist/store/exodus/recovery.js.map +1 -1
  290. package/dist/store/global-salt.d.ts +35 -0
  291. package/dist/store/global-salt.d.ts.map +1 -1
  292. package/dist/store/global-salt.js +136 -16
  293. package/dist/store/global-salt.js.map +1 -1
  294. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  295. package/dist/store/legacy-tasks-lineage.js +19 -2
  296. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  297. package/dist/store/migration-sqlite.d.ts.map +1 -1
  298. package/dist/store/migration-sqlite.js +19 -11
  299. package/dist/store/migration-sqlite.js.map +1 -1
  300. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  301. package/dist/store/portable-bundle-scan.js +6 -0
  302. package/dist/store/portable-bundle-scan.js.map +1 -1
  303. package/dist/store/row-identity-flag.d.ts +26 -0
  304. package/dist/store/row-identity-flag.d.ts.map +1 -0
  305. package/dist/store/row-identity-flag.js +31 -0
  306. package/dist/store/row-identity-flag.js.map +1 -0
  307. package/dist/store/row-identity-registry.d.ts +61 -0
  308. package/dist/store/row-identity-registry.d.ts.map +1 -0
  309. package/dist/store/row-identity-registry.js +206 -0
  310. package/dist/store/row-identity-registry.js.map +1 -0
  311. package/dist/store/row-identity.d.ts +480 -0
  312. package/dist/store/row-identity.d.ts.map +1 -0
  313. package/dist/store/row-identity.js +1509 -0
  314. package/dist/store/row-identity.js.map +1 -0
  315. package/dist/store/safety-data-accessor.d.ts +5 -2
  316. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  317. package/dist/store/safety-data-accessor.js +9 -2
  318. package/dist/store/safety-data-accessor.js.map +1 -1
  319. package/dist/store/schema/attachments.d.ts +1 -1
  320. package/dist/store/schema/audit.d.ts +4 -4
  321. package/dist/store/schema/background-jobs.d.ts +1 -1
  322. package/dist/store/schema/cleo-global/nexus.d.ts +1 -1
  323. package/dist/store/schema/cleo-global/skills.d.ts +2 -2
  324. package/dist/store/schema/cleo-project/audit.d.ts +4 -4
  325. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  326. package/dist/store/schema/cleo-project/lifecycle.d.ts +4 -4
  327. package/dist/store/schema/cleo-project/nexus-graph.d.ts +3 -3
  328. package/dist/store/schema/cleo-project/provenance-commits.d.ts +2 -2
  329. package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
  330. package/dist/store/schema/cleo-project/runtime.d.ts +3 -3
  331. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +87 -1
  332. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts.map +1 -1
  333. package/dist/store/schema/cleo-project/tasks-core-batch2.js +35 -0
  334. package/dist/store/schema/cleo-project/tasks-core-batch2.js.map +1 -1
  335. package/dist/store/schema/cleo-project/tasks-core.d.ts +183 -7
  336. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  337. package/dist/store/schema/cleo-project/tasks-core.js +52 -1
  338. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  339. package/dist/store/schema/cleo-shared/brain.d.ts +6 -6
  340. package/dist/store/schema/lifecycle.d.ts +4 -4
  341. package/dist/store/schema/manifest.d.ts +1 -1
  342. package/dist/store/schema/memory-schema.d.ts +5 -5
  343. package/dist/store/schema/nexus-schema.d.ts +3 -3
  344. package/dist/store/schema/provenance/releases.d.ts +1 -1
  345. package/dist/store/schema/skills-schema.d.ts +2 -2
  346. package/dist/store/schema/tasks.d.ts +6 -6
  347. package/dist/store/session-store.d.ts +63 -3
  348. package/dist/store/session-store.d.ts.map +1 -1
  349. package/dist/store/session-store.js +121 -8
  350. package/dist/store/session-store.js.map +1 -1
  351. package/dist/store/split-brain-import.d.ts +2 -14
  352. package/dist/store/split-brain-import.d.ts.map +1 -1
  353. package/dist/store/split-brain-import.js +40 -19
  354. package/dist/store/split-brain-import.js.map +1 -1
  355. package/dist/store/sqlite-data-accessor.d.ts +326 -2
  356. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  357. package/dist/store/sqlite-data-accessor.js +782 -49
  358. package/dist/store/sqlite-data-accessor.js.map +1 -1
  359. package/dist/store/sync/clock-store.d.ts +67 -0
  360. package/dist/store/sync/clock-store.d.ts.map +1 -0
  361. package/dist/store/sync/clock-store.js +117 -0
  362. package/dist/store/sync/clock-store.js.map +1 -0
  363. package/dist/store/sync/flags.d.ts +51 -0
  364. package/dist/store/sync/flags.d.ts.map +1 -0
  365. package/dist/store/sync/flags.js +81 -0
  366. package/dist/store/sync/flags.js.map +1 -0
  367. package/dist/store/sync/hlc.d.ts +115 -0
  368. package/dist/store/sync/hlc.d.ts.map +1 -0
  369. package/dist/store/sync/hlc.js +172 -0
  370. package/dist/store/sync/hlc.js.map +1 -0
  371. package/dist/store/sync/index.d.ts +20 -0
  372. package/dist/store/sync/index.d.ts.map +1 -0
  373. package/dist/store/sync/index.js +20 -0
  374. package/dist/store/sync/index.js.map +1 -0
  375. package/dist/store/sync/replica-registry.d.ts +85 -0
  376. package/dist/store/sync/replica-registry.d.ts.map +1 -0
  377. package/dist/store/sync/replica-registry.js +147 -0
  378. package/dist/store/sync/replica-registry.js.map +1 -0
  379. package/dist/store/sync/replica.d.ts +181 -0
  380. package/dist/store/sync/replica.d.ts.map +1 -0
  381. package/dist/store/sync/replica.js +305 -0
  382. package/dist/store/sync/replica.js.map +1 -0
  383. package/dist/store/sync/schema.d.ts +68 -0
  384. package/dist/store/sync/schema.d.ts.map +1 -0
  385. package/dist/store/sync/schema.js +130 -0
  386. package/dist/store/sync/schema.js.map +1 -0
  387. package/dist/store/sync/skew-hold.d.ts +71 -0
  388. package/dist/store/sync/skew-hold.d.ts.map +1 -0
  389. package/dist/store/sync/skew-hold.js +89 -0
  390. package/dist/store/sync/skew-hold.js.map +1 -0
  391. package/dist/store/table-classification.d.ts +10 -8
  392. package/dist/store/table-classification.d.ts.map +1 -1
  393. package/dist/store/table-classification.js +93 -25
  394. package/dist/store/table-classification.js.map +1 -1
  395. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  396. package/dist/store/tasks-sqlite.js +23 -3
  397. package/dist/store/tasks-sqlite.js.map +1 -1
  398. package/dist/store/twin-collapse.d.ts +113 -2
  399. package/dist/store/twin-collapse.d.ts.map +1 -1
  400. package/dist/store/twin-collapse.js +247 -19
  401. package/dist/store/twin-collapse.js.map +1 -1
  402. package/dist/store/umbrella-data-accessor.d.ts +5 -2
  403. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  404. package/dist/store/umbrella-data-accessor.js +9 -2
  405. package/dist/store/umbrella-data-accessor.js.map +1 -1
  406. package/dist/store/validation-schemas.d.ts +241 -49
  407. package/dist/store/validation-schemas.d.ts.map +1 -1
  408. package/dist/system/health.d.ts +2 -0
  409. package/dist/system/health.d.ts.map +1 -1
  410. package/dist/system/health.js +57 -0
  411. package/dist/system/health.js.map +1 -1
  412. package/dist/system/project-health.d.ts +9 -2
  413. package/dist/system/project-health.d.ts.map +1 -1
  414. package/dist/system/project-health.js +8 -3
  415. package/dist/system/project-health.js.map +1 -1
  416. package/dist/task-work/index.d.ts.map +1 -1
  417. package/dist/task-work/index.js +9 -6
  418. package/dist/task-work/index.js.map +1 -1
  419. package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
  420. package/dist/tasks/ac-coverage-gate.js +3 -0
  421. package/dist/tasks/ac-coverage-gate.js.map +1 -1
  422. package/dist/tasks/ac-table.d.ts +35 -7
  423. package/dist/tasks/ac-table.d.ts.map +1 -1
  424. package/dist/tasks/ac-table.js +119 -14
  425. package/dist/tasks/ac-table.js.map +1 -1
  426. package/dist/tasks/add.d.ts.map +1 -1
  427. package/dist/tasks/add.js +48 -2
  428. package/dist/tasks/add.js.map +1 -1
  429. package/dist/tasks/analyze.d.ts.map +1 -1
  430. package/dist/tasks/analyze.js +3 -2
  431. package/dist/tasks/analyze.js.map +1 -1
  432. package/dist/tasks/backfill-child-projections.js +47 -6
  433. package/dist/tasks/backfill-child-projections.js.map +1 -1
  434. package/dist/tasks/complete.d.ts.map +1 -1
  435. package/dist/tasks/complete.js +6 -1
  436. package/dist/tasks/complete.js.map +1 -1
  437. package/dist/tasks/completion-evaluation.d.ts.map +1 -1
  438. package/dist/tasks/completion-evaluation.js +3 -0
  439. package/dist/tasks/completion-evaluation.js.map +1 -1
  440. package/dist/tasks/evidence.d.ts +19 -1
  441. package/dist/tasks/evidence.d.ts.map +1 -1
  442. package/dist/tasks/evidence.js +93 -21
  443. package/dist/tasks/evidence.js.map +1 -1
  444. package/dist/tasks/infer-add-params.js +1 -1
  445. package/dist/tasks/infer-add-params.js.map +1 -1
  446. package/dist/tasks/task-context.d.ts.map +1 -1
  447. package/dist/tasks/task-context.js +3 -1
  448. package/dist/tasks/task-context.js.map +1 -1
  449. package/dist/tasks/task-import.d.ts.map +1 -1
  450. package/dist/tasks/task-import.js +11 -3
  451. package/dist/tasks/task-import.js.map +1 -1
  452. package/dist/tasks/task-next.d.ts +5 -1
  453. package/dist/tasks/task-next.d.ts.map +1 -1
  454. package/dist/tasks/task-next.js +7 -2
  455. package/dist/tasks/task-next.js.map +1 -1
  456. package/dist/validation/compliance.d.ts +5 -1
  457. package/dist/validation/compliance.d.ts.map +1 -1
  458. package/dist/validation/compliance.js +24 -3
  459. package/dist/validation/compliance.js.map +1 -1
  460. package/dist/validation/engine-ops.d.ts.map +1 -1
  461. package/dist/validation/engine-ops.js +3 -2
  462. package/dist/validation/engine-ops.js.map +1 -1
  463. package/dist/validation/index.d.ts +1 -1
  464. package/dist/validation/index.d.ts.map +1 -1
  465. package/dist/validation/index.js +1 -1
  466. package/dist/validation/index.js.map +1 -1
  467. package/dist/validation/protocol-common.d.ts +47 -2
  468. package/dist/validation/protocol-common.d.ts.map +1 -1
  469. package/dist/validation/protocol-common.js +86 -21
  470. package/dist/validation/protocol-common.js.map +1 -1
  471. package/dist/workgraph/scaffold-apply.d.ts.map +1 -1
  472. package/dist/workgraph/scaffold-apply.js +14 -5
  473. package/dist/workgraph/scaffold-apply.js.map +1 -1
  474. package/migrations/README.md +12 -0
  475. package/migrations/drizzle-cleo-project/20260928120000_t12341-row-uids/migration.sql +169 -0
  476. package/migrations/drizzle-cleo-project/20260930160000_t12886-dependency-cycle-guard/migration.sql +76 -0
  477. package/migrations/drizzle-cleo-project/20260930160000_t12886-dependency-cycle-guard/revert.sql +7 -0
  478. package/migrations/sync-journal/20260929140000_t12342-sync-clock/migration.sql +42 -0
  479. package/package.json +13 -13
  480. package/templates/CLEO-INJECTION.md +2 -2
  481. package/templates/CLEO-REFERENCE.md +5 -1
@@ -56,11 +56,20 @@ const VALID_TYPES = [
56
56
  'Testing',
57
57
  'Specification',
58
58
  'Consensus',
59
+ 'ADR',
59
60
  'Decomposition',
60
61
  'Contribution',
61
62
  'Release',
62
63
  ];
63
- const VALID_STATUSES_MSG = MANIFEST_STATUSES.filter((s) => s !== 'archived');
64
+ /**
65
+ * Statuses a return message may carry. `complete` is the spelling the spawn
66
+ * prompt renders; `completed` is the manifest status and stays accepted.
67
+ */
68
+ const RETURN_STATUSES = ['complete', ...MANIFEST_STATUSES.filter((s) => s !== 'archived')];
69
+ /** Tail of the legacy one-line return message (ADR-027). */
70
+ const LEGACY_RETURN_TAIL = ' Manifest appended to pipeline_manifest.';
71
+ /** Keys a compressed return message may carry after its first line (T12521). */
72
+ const RETURN_DETAIL_KEYS = ['commits', 'gates', 'blocker'];
64
73
  /**
65
74
  * Map from protocol type identifiers to the expected message type prefix.
66
75
  * When a protocolType is provided, the return message must use the matching type.
@@ -72,38 +81,94 @@ const PROTOCOL_TYPE_MAP = {
72
81
  testing: 'Testing',
73
82
  specification: 'Specification',
74
83
  consensus: 'Consensus',
84
+ architecture_decision: 'ADR',
75
85
  decomposition: 'Decomposition',
76
86
  contribution: 'Contribution',
77
87
  release: 'Release',
78
88
  };
79
89
  /**
80
- * Check if return message follows protocol format.
81
- * Expected: "<Type> <status>. Manifest appended to pipeline_manifest."
90
+ * Parse a subagent return message in the compressed or the legacy form.
91
+ *
92
+ * One surrounding ``` fence is stripped first. In the compressed form:
93
+ * `blocker` must be `none` (or absent) when the status is
94
+ * `complete`/`completed`, and present and not `none` when it is
95
+ * `partial`/`blocked`; `manifest:none` is accepted only for `partial`/`blocked`;
96
+ * an entry id containing `<` or `>` (an unfilled `<entryId>` placeholder) is
97
+ * rejected. Unknown, duplicate or empty detail lines reject the message, and a
98
+ * legacy message must be exactly one line (its rules are unchanged).
99
+ *
100
+ * @param message - Raw return message (surrounding whitespace and one
101
+ * surrounding code fence are ignored).
102
+ * @param types - Allowed type words; omitted, any non-empty type is allowed.
103
+ * @returns The parsed message, or `null` when it matches neither form.
104
+ * @task T12521
105
+ */
106
+ export function parseReturnMessage(message, types) {
107
+ const lines = stripReturnFence(message.trim().split(/\r?\n/));
108
+ const typePattern = types ? types.map(escapeRegex).join('|') : '.+?';
109
+ const head = new RegExp(`^(${typePattern}) (${RETURN_STATUSES.join('|')})\\.(?:${escapeRegex(LEGACY_RETURN_TAIL)}| manifest:(\\S+))$`).exec(lines[0] ?? '');
110
+ const type = head?.[1];
111
+ const status = head?.[2];
112
+ if (!type || !status)
113
+ return null;
114
+ const entryId = head?.[3] ?? null;
115
+ const parsed = {
116
+ form: entryId ? 'compressed' : 'legacy',
117
+ type,
118
+ status,
119
+ entryId,
120
+ commits: null,
121
+ gates: null,
122
+ blocker: null,
123
+ };
124
+ if (parsed.form === 'legacy')
125
+ return lines.length === 1 ? parsed : null;
126
+ for (const line of lines.slice(1)) {
127
+ const detail = /^(\w+): (\S.*)$/.exec(line.trim());
128
+ const key = RETURN_DETAIL_KEYS.find((k) => k === detail?.[1]);
129
+ const value = detail?.[2]?.trim();
130
+ if (!key || !value || parsed[key] !== null)
131
+ return null;
132
+ parsed[key] = value;
133
+ }
134
+ if (/[<>]/.test(entryId ?? ''))
135
+ return null;
136
+ const done = status === 'complete' || status === 'completed';
137
+ const blocked = parsed.blocker !== null && parsed.blocker !== 'none';
138
+ if (done && (blocked || entryId === 'none'))
139
+ return null;
140
+ if (!done && !blocked)
141
+ return null;
142
+ return parsed;
143
+ }
144
+ /**
145
+ * Drop one surrounding ``` fence (with an optional info string) from the
146
+ * lines of a return message, so a block copied verbatim from the spawn
147
+ * prompt's template still parses (T12521).
148
+ */
149
+ function stripReturnFence(lines) {
150
+ const first = lines[0]?.trim() ?? '';
151
+ const last = lines[lines.length - 1]?.trim() ?? '';
152
+ if (lines.length >= 3 && /^```[\w-]*$/.test(first) && last === '```') {
153
+ return lines.slice(1, -1).map((line) => line.trim());
154
+ }
155
+ return lines;
156
+ }
157
+ /**
158
+ * Check if return message follows protocol format — the compressed form
159
+ * (`<Type> <status>. manifest:<entryId>` plus optional detail lines) or the
160
+ * legacy one-liner (`<Type> <status>. Manifest appended to pipeline_manifest.`).
82
161
  *
83
162
  * When protocolType is provided, the message type must match the protocol
84
163
  * (e.g., a 'research' protocol must produce a "Research ..." message).
85
164
  *
86
165
  * @task T4527
166
+ * @task T12521
87
167
  */
88
168
  export function checkReturnMessageFormat(message, protocolType) {
89
- const statusPattern = VALID_STATUSES_MSG.join('|');
90
- // If protocolType is given, constrain the type to the matching prefix
91
- let typePattern;
92
- if (protocolType) {
93
- const expectedType = PROTOCOL_TYPE_MAP[protocolType.toLowerCase()];
94
- if (!expectedType) {
95
- // Unknown protocol type — fall back to allowing any valid type
96
- typePattern = VALID_TYPES.join('|');
97
- }
98
- else {
99
- typePattern = expectedType;
100
- }
101
- }
102
- else {
103
- typePattern = VALID_TYPES.join('|');
104
- }
105
- const regex = new RegExp(`^(${typePattern}) (${statusPattern})\\. Manifest appended to pipeline_manifest\\.$`);
106
- return regex.test(message);
169
+ // Unknown protocol type — fall back to allowing any valid type.
170
+ const expectedType = protocolType ? PROTOCOL_TYPE_MAP[protocolType.toLowerCase()] : undefined;
171
+ return parseReturnMessage(message, expectedType ? [expectedType] : VALID_TYPES) !== null;
107
172
  }
108
173
  // ============================================================================
109
174
  // Manifest Field Validation
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-common.js","sourceRoot":"","sources":["../../src/validation/protocol-common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol-common.js","sourceRoot":"","sources":["../../src/validation/protocol-common.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold-apply.d.ts","sourceRoot":"","sources":["../../src/workgraph/scaffold-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAC5B,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAU7B,0EAA0E;AAC1E,eAAO,MAAM,kCAAkC,uCAAuC,CAAC;AAEvF,qFAAqF;AACrF,eAAO,MAAM,yCAAyC,8CACT,CAAC;AAE9C,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,qCAAqC,CAAC;AAsEnF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,4BAA4B,CAAC,CA0HvC"}
1
+ {"version":3,"file":"scaffold-apply.d.ts","sourceRoot":"","sources":["../../src/workgraph/scaffold-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAC5B,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAW7B,0EAA0E;AAC1E,eAAO,MAAM,kCAAkC,uCAAuC,CAAC;AAEvF,qFAAqF;AACrF,eAAO,MAAM,yCAAyC,8CACT,CAAC;AAE9C,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,qCAAqC,CAAC;AAsEnF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,4BAA4B,CAAC,CAiIvC"}
@@ -10,6 +10,7 @@
10
10
  * @epic T10547
11
11
  */
12
12
  import { captureProjectScope, getProjectRoot, worktreeScope } from '../project-scope.js';
13
+ import { rethrowDependencyCycle } from '../store/dependency-cycles.js';
13
14
  import { getDb, getNativeDb } from '../store/sqlite.js';
14
15
  import * as schema from '../store/tasks-schema.js';
15
16
  import { validateWorkGraphScaffold } from './scaffold-validate.js';
@@ -147,11 +148,19 @@ export async function applyWorkGraphScaffold(params) {
147
148
  for (const edge of params.edges) {
148
149
  if (edge.source === 'dependency') {
149
150
  // Dependency edge → task_dependencies
150
- const result = db
151
- .insert(schema.taskDependencies)
152
- .values({ taskId: edge.fromId, dependsOn: edge.toId })
153
- .onConflictDoNothing()
154
- .run();
151
+ const dependency = { taskId: edge.fromId, dependsOn: edge.toId };
152
+ let result;
153
+ try {
154
+ result = db
155
+ .insert(schema.taskDependencies)
156
+ .values(dependency)
157
+ .onConflictDoNothing()
158
+ .run();
159
+ }
160
+ catch (err) {
161
+ // T12886: name the cycle the guard trigger refused.
162
+ rethrowDependencyCycle(db, err, [dependency]);
163
+ }
155
164
  if (result.changes > 0) {
156
165
  edgesChanged++;
157
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold-apply.js","sourceRoot":"","sources":["../../src/workgraph/scaffold-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold-apply.js","sourceRoot":"","sources":["../../src/workgraph/scaffold-apply.ts"],"names":[],"mappings":"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"}
@@ -236,6 +236,18 @@ Running `pnpm db:new -- --db signaldock` emits a warning and proceeds; the linte
236
236
  any convention violations. Bringing signaldock fully into the `migration-manager.ts` runtime
237
237
  is an epic-scale refactor out of scope for Wave 2A (ADR-054 R3 §6.1).
238
238
 
239
+ ### sync-journal: not a drizzle lineage
240
+
241
+ `sync-journal/` holds the change journal's own tables (`_sync_meta`, `_sync_clock`,
242
+ `_sync_replica`; T12342). It is NOT a drizzle lineage: `migration-manager.ts`, drizzle-kit,
243
+ `pnpm db:new` and `scripts/lint-migrations.mjs` (which scans `drizzle-*` sets only) never touch
244
+ it. `packages/core/src/store/sync/schema.ts` applies its folders lazily, only when a `sync.*`
245
+ flag is first enabled on a store, so a store with every flag off gains no table and no journal
246
+ row. Each applied folder is journaled in `_sync_meta` as `schema:<folder>` with the sha256 of
247
+ its `migration.sql`, never in `__drizzle_migrations`; an applied folder whose SQL changed is
248
+ refused with `E_SYNC_SCHEMA_HASH_DRIFT`. Never edit an applied folder: add a new one, with the
249
+ same `YYYYMMDDHHMMSS_tNNNN-<slug>/migration.sql` naming.
250
+
239
251
  ---
240
252
 
241
253
  ## Linter Rules
@@ -0,0 +1,169 @@
1
+ -- T12341 (epic T12323) — row uids: the merge key of every syncing row.
2
+ --
3
+ -- Adds a nullable `uid` column (and a unique index on it) to the task-graph
4
+ -- tables whose live table is settled (no pending twin collapse), plus the
5
+ -- stored AC-uid references `ac_uid` on evidence bindings and AC history, and
6
+ -- the display-id alias table. Spec: `cleo docs fetch t12341-uid-scheme`.
7
+ --
8
+ -- The column is filled by TypeScript, not here: SQLite has no hash function,
9
+ -- and existing rows need a DETERMINISTIC uid so two devices that share a
10
+ -- history derive the same one (store/row-identity.ts, run at every open inside
11
+ -- the cold-open lease, right after the migrations). Nothing in this file
12
+ -- rebuilds a table, so the T12541 rebuild probe does not apply; if the journal
13
+ -- probe ever stamps this migration after adding only its columns (Scenario 3,
14
+ -- Case B), the open pass re-creates the indexes.
15
+ --
16
+ -- There is deliberately no persistent trigger: one that called the uid
17
+ -- function would fail every insert an older build makes (it lacks the
18
+ -- function), and one that minted a random uid would make those rows
19
+ -- non-deterministic. Rows an older build inserts keep a NULL uid until the next
20
+ -- open by this build fills them.
21
+ --
22
+ -- `birth_fp` (minted tables) is the birth fingerprint: a hash of creation
23
+ -- facts no edit changes, captured when the uid is assigned. Same uid with a
24
+ -- different birth_fp is a uid COLLISION the merge never merges (spec §6.4).
25
+ -- `ac_text_hash` on bindings is the hash of the AC text the evidence was
26
+ -- recorded against; a mismatch with the current text is stale evidence.
27
+ --
28
+ -- `tasks_display_id_aliases` follows the ADR-094 alias pattern (a live display
29
+ -- id always wins; an alias resolves only when no live row holds the id;
30
+ -- several aliases are an error). `tasks_uid_aliases` records uid re-keys after
31
+ -- a collision. Both are runtime infrastructure written by
32
+ -- store/display-id-alias.ts, not part of the exodus target shape.
33
+ --
34
+ -- `tasks_identity_quarantine` (local-only) holds incoming rows a merge cannot
35
+ -- place yet: the loser of a uid or display-id collision until its authority's
36
+ -- re-key / re-mint arrives, and rows whose references wait on one (spec §6.4).
37
+ --
38
+ -- `tasks_row_identity_meta` (local-only) holds the identity recipe version the
39
+ -- store's values were derived with, and the sync layer's "uids have synced"
40
+ -- marker (spec §12.1).
41
+ --
42
+ -- `tasks_ac_uid_graveyard` and its PURE-SQL delete trigger record the uid of a
43
+ -- deleted acceptance criterion, so the next open by this build can re-link a
44
+ -- criterion an older build deleted and recreated without carrying its uid
45
+ -- (spec §6.5). The trigger calls no function, so older builds run it as is.
46
+ --
47
+ -- @task T12341
48
+ -- @epic T12323
49
+
50
+ ALTER TABLE `tasks_tasks` ADD COLUMN `uid` TEXT;
51
+ --> statement-breakpoint
52
+ ALTER TABLE `tasks_task_acceptance_criteria` ADD COLUMN `uid` TEXT;
53
+ --> statement-breakpoint
54
+ ALTER TABLE `tasks_task_acceptance_criteria_history` ADD COLUMN `uid` TEXT;
55
+ --> statement-breakpoint
56
+ ALTER TABLE `tasks_task_acceptance_criteria_history` ADD COLUMN `ac_uid` TEXT;
57
+ --> statement-breakpoint
58
+ ALTER TABLE `tasks_evidence_ac_bindings` ADD COLUMN `uid` TEXT;
59
+ --> statement-breakpoint
60
+ ALTER TABLE `tasks_evidence_ac_bindings` ADD COLUMN `ac_uid` TEXT;
61
+ --> statement-breakpoint
62
+ ALTER TABLE `tasks_sessions` ADD COLUMN `uid` TEXT;
63
+ --> statement-breakpoint
64
+ ALTER TABLE `tasks_task_dependencies` ADD COLUMN `uid` TEXT;
65
+ --> statement-breakpoint
66
+ ALTER TABLE `tasks_task_relations` ADD COLUMN `uid` TEXT;
67
+ --> statement-breakpoint
68
+ ALTER TABLE `tasks_task_labels` ADD COLUMN `uid` TEXT;
69
+ --> statement-breakpoint
70
+ ALTER TABLE `tasks_tasks` ADD COLUMN `birth_fp` TEXT;
71
+ --> statement-breakpoint
72
+ ALTER TABLE `tasks_task_acceptance_criteria` ADD COLUMN `birth_fp` TEXT;
73
+ --> statement-breakpoint
74
+ ALTER TABLE `tasks_task_acceptance_criteria_history` ADD COLUMN `birth_fp` TEXT;
75
+ --> statement-breakpoint
76
+ ALTER TABLE `tasks_evidence_ac_bindings` ADD COLUMN `birth_fp` TEXT;
77
+ --> statement-breakpoint
78
+ ALTER TABLE `tasks_evidence_ac_bindings` ADD COLUMN `ac_text_hash` TEXT;
79
+ --> statement-breakpoint
80
+ ALTER TABLE `tasks_sessions` ADD COLUMN `birth_fp` TEXT;
81
+ --> statement-breakpoint
82
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_tasks_uid` ON `tasks_tasks` (`uid`);
83
+ --> statement-breakpoint
84
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_task_acceptance_criteria_uid` ON `tasks_task_acceptance_criteria` (`uid`);
85
+ --> statement-breakpoint
86
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_task_acceptance_criteria_history_uid` ON `tasks_task_acceptance_criteria_history` (`uid`);
87
+ --> statement-breakpoint
88
+ CREATE INDEX IF NOT EXISTS `idx_tasks_task_acceptance_criteria_history_ac_uid` ON `tasks_task_acceptance_criteria_history` (`ac_uid`);
89
+ --> statement-breakpoint
90
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_evidence_ac_bindings_uid` ON `tasks_evidence_ac_bindings` (`uid`);
91
+ --> statement-breakpoint
92
+ CREATE INDEX IF NOT EXISTS `idx_tasks_evidence_ac_bindings_ac_uid` ON `tasks_evidence_ac_bindings` (`ac_uid`);
93
+ --> statement-breakpoint
94
+ CREATE INDEX IF NOT EXISTS `idx_tasks_evidence_ac_bindings_ac_text_hash` ON `tasks_evidence_ac_bindings` (`ac_text_hash`);
95
+ --> statement-breakpoint
96
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_sessions_uid` ON `tasks_sessions` (`uid`);
97
+ --> statement-breakpoint
98
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_task_dependencies_uid` ON `tasks_task_dependencies` (`uid`);
99
+ --> statement-breakpoint
100
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_task_relations_uid` ON `tasks_task_relations` (`uid`);
101
+ --> statement-breakpoint
102
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_tasks_task_labels_uid` ON `tasks_task_labels` (`uid`);
103
+ --> statement-breakpoint
104
+ CREATE TABLE IF NOT EXISTS `tasks_display_id_aliases` (
105
+ `uid` TEXT PRIMARY KEY NOT NULL,
106
+ `entity_table` TEXT NOT NULL,
107
+ `display_id` TEXT NOT NULL,
108
+ `entity_uid` TEXT NOT NULL,
109
+ `reason` TEXT NOT NULL,
110
+ `origin` TEXT,
111
+ `displaced_hlc` TEXT,
112
+ `created_at` TEXT NOT NULL,
113
+ `entity_birth_fp` TEXT
114
+ );
115
+ --> statement-breakpoint
116
+ CREATE INDEX IF NOT EXISTS `idx_tasks_display_id_aliases_lookup` ON `tasks_display_id_aliases` (`entity_table`, `display_id`);
117
+ --> statement-breakpoint
118
+ CREATE INDEX IF NOT EXISTS `idx_tasks_display_id_aliases_entity` ON `tasks_display_id_aliases` (`entity_uid`);
119
+ --> statement-breakpoint
120
+ CREATE TABLE IF NOT EXISTS `tasks_uid_aliases` (
121
+ `uid` TEXT PRIMARY KEY NOT NULL,
122
+ `entity_table` TEXT NOT NULL,
123
+ `old_uid` TEXT NOT NULL,
124
+ `old_birth_fp` TEXT NOT NULL,
125
+ `new_uid` TEXT NOT NULL,
126
+ `origin` TEXT,
127
+ `displaced_hlc` TEXT,
128
+ `created_at` TEXT NOT NULL
129
+ );
130
+ --> statement-breakpoint
131
+ CREATE INDEX IF NOT EXISTS `idx_tasks_uid_aliases_old` ON `tasks_uid_aliases` (`entity_table`, `old_uid`);
132
+ --> statement-breakpoint
133
+ CREATE TABLE IF NOT EXISTS `tasks_ac_uid_graveyard` (
134
+ `seq` INTEGER PRIMARY KEY AUTOINCREMENT,
135
+ `ac_id` TEXT NOT NULL,
136
+ `uid` TEXT NOT NULL,
137
+ `task_id` TEXT NOT NULL,
138
+ `ordinal` INTEGER NOT NULL,
139
+ `text` TEXT NOT NULL,
140
+ `birth_fp` TEXT,
141
+ `deleted_at` TEXT NOT NULL
142
+ );
143
+ --> statement-breakpoint
144
+ CREATE INDEX IF NOT EXISTS `idx_tasks_ac_uid_graveyard_task` ON `tasks_ac_uid_graveyard` (`task_id`);
145
+ --> statement-breakpoint
146
+ CREATE TRIGGER IF NOT EXISTS `trg_tasks_ac_uid_graveyard`
147
+ AFTER DELETE ON `tasks_task_acceptance_criteria`
148
+ WHEN OLD.`uid` IS NOT NULL
149
+ BEGIN
150
+ INSERT INTO `tasks_ac_uid_graveyard` (`ac_id`, `uid`, `task_id`, `ordinal`, `text`, `birth_fp`, `deleted_at`)
151
+ VALUES (OLD.`id`, OLD.`uid`, OLD.`task_id`, OLD.`ordinal`, OLD.`text`, OLD.`birth_fp`, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'));
152
+ END;
153
+ --> statement-breakpoint
154
+ CREATE TABLE IF NOT EXISTS `tasks_row_identity_meta` (
155
+ `key` TEXT PRIMARY KEY NOT NULL,
156
+ `value` TEXT NOT NULL
157
+ );
158
+ --> statement-breakpoint
159
+ CREATE TABLE IF NOT EXISTS `tasks_identity_quarantine` (
160
+ `entity_table` TEXT NOT NULL,
161
+ `uid` TEXT NOT NULL,
162
+ `birth_fp` TEXT NOT NULL,
163
+ `reason` TEXT NOT NULL,
164
+ `contested_id` TEXT,
165
+ `row_json` TEXT NOT NULL,
166
+ `received_hlc` TEXT,
167
+ `created_at` TEXT NOT NULL,
168
+ PRIMARY KEY (`entity_table`, `uid`, `birth_fp`)
169
+ );
@@ -0,0 +1,76 @@
1
+ -- T12886 — refuse a `tasks_task_dependencies` edge that closes a cycle.
2
+ --
3
+ -- `tasks_tasks_parent_cycle_guard_*` (T10572, restored by T11884) guards the
4
+ -- containment tree only. Nothing guarded the dependency graph: no trigger, and
5
+ -- no write path in TypeScript (`wouldCreateCycle` / `detectCircularDeps` are
6
+ -- read-only diagnostics). A cycle stalls every task on it forever: `cleo next`,
7
+ -- ready waves and orchestration all wait for a blocker that waits for them.
8
+ --
9
+ -- An edge (task_id → depends_on) means "task_id depends on depends_on". It
10
+ -- closes a cycle when task_id = depends_on (a self-dependency) or when
11
+ -- task_id is already reachable from depends_on through existing edges.
12
+ --
13
+ -- Bounded recursion: `reachable` has ONE column and uses UNION, so every task
14
+ -- id enters it at most once and the walk stops after at most one row per task.
15
+ -- No depth column exists to make a revisit distinct (the T12307 exit-143
16
+ -- failure mode), and no depth cap truncates a legitimately long chain. EXISTS
17
+ -- stops at the first match.
18
+ --
19
+ -- Re-inserting an edge that is already stored (INSERT … ON CONFLICT DO
20
+ -- NOTHING by the diff writers) is not checked, so a store that already holds a
21
+ -- legacy cycle stays writable; `cleo doctor dep-cycles` reports those cycles
22
+ -- with a repair plan. The UPDATE guard ignores the row's own OLD edge, which
23
+ -- is replaced by the update.
24
+ --
25
+ -- The RAISE message is a literal (an expression needs SQLite ≥ 3.47, and every
26
+ -- reader must be able to parse the schema). The TypeScript write chokepoint
27
+ -- (`batchUpdateDependencies`) translates it into an error that names the cycle.
28
+ --
29
+ -- @task T12886
30
+ -- @epic T12486
31
+
32
+ DROP TRIGGER IF EXISTS `tasks_task_dependencies_cycle_guard_insert`;
33
+ --> statement-breakpoint
34
+ DROP TRIGGER IF EXISTS `tasks_task_dependencies_cycle_guard_update`;
35
+ --> statement-breakpoint
36
+ CREATE TRIGGER `tasks_task_dependencies_cycle_guard_insert`
37
+ BEFORE INSERT ON `tasks_task_dependencies`
38
+ WHEN NOT EXISTS (
39
+ SELECT 1
40
+ FROM `tasks_task_dependencies` existing
41
+ WHERE existing.`task_id` = NEW.`task_id`
42
+ AND existing.`depends_on` = NEW.`depends_on`
43
+ )
44
+ BEGIN
45
+ SELECT RAISE(ABORT, 'E_TASK_DEPENDENCY_CYCLE: tasks_task_dependencies edge would close a dependency cycle (a task cannot depend on itself or on a task that already depends on it)')
46
+ WHERE NEW.`task_id` = NEW.`depends_on`
47
+ OR EXISTS (
48
+ WITH RECURSIVE reachable(`id`) AS (
49
+ SELECT NEW.`depends_on`
50
+ UNION
51
+ SELECT dep.`depends_on`
52
+ FROM `tasks_task_dependencies` dep
53
+ JOIN reachable ON dep.`task_id` = reachable.`id`
54
+ )
55
+ SELECT 1 FROM reachable WHERE reachable.`id` = NEW.`task_id`
56
+ );
57
+ END;
58
+ --> statement-breakpoint
59
+ CREATE TRIGGER `tasks_task_dependencies_cycle_guard_update`
60
+ BEFORE UPDATE OF `task_id`, `depends_on` ON `tasks_task_dependencies`
61
+ WHEN NEW.`task_id` IS NOT OLD.`task_id` OR NEW.`depends_on` IS NOT OLD.`depends_on`
62
+ BEGIN
63
+ SELECT RAISE(ABORT, 'E_TASK_DEPENDENCY_CYCLE: tasks_task_dependencies edge would close a dependency cycle (a task cannot depend on itself or on a task that already depends on it)')
64
+ WHERE NEW.`task_id` = NEW.`depends_on`
65
+ OR EXISTS (
66
+ WITH RECURSIVE reachable(`id`) AS (
67
+ SELECT NEW.`depends_on`
68
+ UNION
69
+ SELECT dep.`depends_on`
70
+ FROM `tasks_task_dependencies` dep
71
+ JOIN reachable ON dep.`task_id` = reachable.`id`
72
+ WHERE NOT (dep.`task_id` = OLD.`task_id` AND dep.`depends_on` = OLD.`depends_on`)
73
+ )
74
+ SELECT 1 FROM reachable WHERE reachable.`id` = NEW.`task_id`
75
+ );
76
+ END;
@@ -0,0 +1,7 @@
1
+ -- Revert T12886 — drop the dependency-cycle guard triggers.
2
+ --
3
+ -- @task T12886
4
+
5
+ DROP TRIGGER IF EXISTS `tasks_task_dependencies_cycle_guard_insert`;
6
+ --> statement-breakpoint
7
+ DROP TRIGGER IF EXISTS `tasks_task_dependencies_cycle_guard_update`;
@@ -0,0 +1,42 @@
1
+ -- T12342 — change journal (S1): store-level sync flags, the HLC clock and the
2
+ -- replica binding. Journal spec t12342-t12343-journal-design §1.4, §1.5, §5.1.
3
+ --
4
+ -- NOT a drizzle migration. The sync schema is applied lazily by
5
+ -- packages/core/src/store/sync/schema.ts, and only when a sync.* flag is first
6
+ -- enabled on a store. With every flag off (the default), opening a store
7
+ -- writes nothing: no table, no journal row. Applied folders are journaled in
8
+ -- _sync_meta under the key 'schema:<folder name>', never in
9
+ -- __drizzle_migrations.
10
+ --
11
+ -- All three tables are local-only (never synced; tier-1 backed up like every
12
+ -- table) and identical in the project and the global store. Statements are
13
+ -- separated by the drizzle breakpoint marker line, like the drizzle lineages.
14
+ --
15
+ -- @task T12342
16
+
17
+ CREATE TABLE IF NOT EXISTS _sync_meta (
18
+ key TEXT PRIMARY KEY,
19
+ value TEXT NOT NULL,
20
+ updated_at TEXT NOT NULL
21
+ ) WITHOUT ROWID;
22
+ --> statement-breakpoint
23
+ CREATE TABLE IF NOT EXISTS _sync_clock (
24
+ replica_id TEXT PRIMARY KEY,
25
+ phys INTEGER NOT NULL CHECK (phys >= 0),
26
+ ctr INTEGER NOT NULL CHECK (ctr BETWEEN 0 AND 999999)
27
+ ) WITHOUT ROWID;
28
+ --> statement-breakpoint
29
+ CREATE TABLE IF NOT EXISTS _sync_replica (
30
+ replica_id TEXT PRIMARY KEY,
31
+ scope TEXT NOT NULL CHECK (scope IN ('project', 'global')),
32
+ nonce TEXT NOT NULL,
33
+ device_id TEXT NOT NULL,
34
+ file_ino INTEGER NOT NULL,
35
+ file_birth INTEGER,
36
+ bound_at TEXT NOT NULL,
37
+ bound_why TEXT NOT NULL,
38
+ retired_at TEXT,
39
+ successor TEXT
40
+ ) WITHOUT ROWID;
41
+ --> statement-breakpoint
42
+ CREATE UNIQUE INDEX IF NOT EXISTS _sync_replica_active ON _sync_replica (scope) WHERE retired_at IS NULL;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/core",
3
- "version": "2026.9.24",
3
+ "version": "2026.9.26",
4
4
  "description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -491,16 +491,16 @@
491
491
  "write-file-atomic": "^7.0.1",
492
492
  "yaml": "^2.8.3",
493
493
  "zod": "^4.3.6",
494
- "@cleocode/adapters": "2026.9.24",
495
- "@cleocode/agents": "2026.9.24",
496
- "@cleocode/caamp": "2026.9.24",
497
- "@cleocode/contracts": "2026.9.24",
498
- "@cleocode/git-shim": "2026.9.24",
499
- "@cleocode/lafs": "2026.9.24",
500
- "@cleocode/nexus": "2026.9.24",
501
- "@cleocode/paths": "2026.9.24",
502
- "@cleocode/skills": "2026.9.24",
503
- "@cleocode/worktree": "2026.9.24"
494
+ "@cleocode/adapters": "2026.9.26",
495
+ "@cleocode/agents": "2026.9.26",
496
+ "@cleocode/caamp": "2026.9.26",
497
+ "@cleocode/contracts": "2026.9.26",
498
+ "@cleocode/git-shim": "2026.9.26",
499
+ "@cleocode/lafs": "2026.9.26",
500
+ "@cleocode/nexus": "2026.9.26",
501
+ "@cleocode/paths": "2026.9.26",
502
+ "@cleocode/skills": "2026.9.26",
503
+ "@cleocode/worktree": "2026.9.26"
504
504
  },
505
505
  "engines": {
506
506
  "node": ">=24.16.0"
@@ -526,7 +526,7 @@
526
526
  "@types/proper-lockfile": "^4.1.4",
527
527
  "@types/tar": "^6.1.13",
528
528
  "@types/write-file-atomic": "^4.0.3",
529
- "@cleocode/utils": "2026.9.24"
529
+ "@cleocode/utils": "2026.9.26"
530
530
  },
531
531
  "repository": {
532
532
  "type": "git",
@@ -535,7 +535,7 @@
535
535
  },
536
536
  "optionalDependencies": {
537
537
  "llmtxt": "^2026.5.15",
538
- "@cleocode/studio": "^2026.9.24"
538
+ "@cleocode/studio": "^2026.9.26"
539
539
  },
540
540
  "scripts": {
541
541
  "build": "tsc && node scripts/copy-selfimprove-fixtures.mjs && node scripts/write-build-provenance.mjs",
@@ -1,6 +1,6 @@
1
1
  # CLEO Protocol
2
2
 
3
- Version: 2.24.1 | CLI-only dispatch | `cleo <command> [args]`
3
+ Version: 2.24.3 | CLI-only dispatch | `cleo <command> [args]`
4
4
 
5
5
  <!-- CLEO-INJECTION:section=session-start -->
6
6
  ## Universal protocol
@@ -71,7 +71,7 @@ Discovery: `cleo focus <id>` to orient, `cleo find "query"` to search (default p
71
71
  | Start session | `cleo session start --scope global --name "<what you are doing>"` (both flags are REQUIRED) |
72
72
  | End session | `cleo session end --note "..."` |
73
73
 
74
- Sessions are terminal-bound. `E_SESSION_UNBOUND` → bind via `cleo session start`, `cleo session resume <id>` or `CLEO_SESSION_ID=<id>`, or pass `--session <id>`; CI and multi-step scripts must export `CLEO_SESSION_ID`. Claude Code adopts a session a human started in its tab; Agent-tool subagents inherit the parent's `CLAUDE_CODE_SESSION_ID`, so they act in the parent's session.
74
+ Sessions are terminal-bound: to the agent harness, pane, tab, CI job (GitHub Actions, GitLab CI) or ssh login, and to a known single-agent harness process (Kimi, aider, …) across its `bash -c` calls; in a human's tab it gets its own identity and runs `cleo session start` itself. Other hosts (orchestrators, IDE extension hosts, `opencode serve`, daemons) identify nobody: multi-agent hosts and multi-step scripts set `CLEO_SESSION_ID` (or `CLEO_AGENT_ID` in a long-lived host only) per agent. `E_SESSION_UNBOUND` → bind via `cleo session start`, `cleo session resume <id>` or `CLEO_SESSION_ID=<id>`, or pass `--session <id>`; separate one-shot `ssh host 'cleo …'` calls must export `CLEO_SESSION_ID`. Claude Code adopts a session a human started in its tab; Agent-tool subagents inherit the parent's `CLAUDE_CODE_SESSION_ID`, so they act in the parent's session.
75
75
  <!-- /CLEO-INJECTION:section=session-commands -->
76
76
 
77
77
  <!-- CLEO-INJECTION:section=output-contract -->