@cleocode/core 2026.9.25 → 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 (208) 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/build-provenance.json +2 -2
  8. package/dist/cloud/index.d.ts +1 -0
  9. package/dist/cloud/index.d.ts.map +1 -1
  10. package/dist/cloud/index.js +1 -0
  11. package/dist/cloud/index.js.map +1 -1
  12. package/dist/cloud/nexus-auth.d.ts +26 -1
  13. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  14. package/dist/cloud/nexus-auth.js +61 -32
  15. package/dist/cloud/nexus-auth.js.map +1 -1
  16. package/dist/cloud/nexus-credentials.js +2 -2
  17. package/dist/cloud/nexus-credentials.js.map +1 -1
  18. package/dist/cloud/nexus-device.d.ts +809 -0
  19. package/dist/cloud/nexus-device.d.ts.map +1 -0
  20. package/dist/cloud/nexus-device.js +1680 -0
  21. package/dist/cloud/nexus-device.js.map +1 -0
  22. package/dist/cloud/nexus-enrol.d.ts +210 -0
  23. package/dist/cloud/nexus-enrol.d.ts.map +1 -0
  24. package/dist/cloud/nexus-enrol.js +1023 -0
  25. package/dist/cloud/nexus-enrol.js.map +1 -0
  26. package/dist/cloud/nexus-link.d.ts +3 -0
  27. package/dist/cloud/nexus-link.d.ts.map +1 -1
  28. package/dist/cloud/nexus-link.js +38 -4
  29. package/dist/cloud/nexus-link.js.map +1 -1
  30. package/dist/cloud/signing.d.ts +20 -0
  31. package/dist/cloud/signing.d.ts.map +1 -1
  32. package/dist/cloud/signing.js +14 -0
  33. package/dist/cloud/signing.js.map +1 -1
  34. package/dist/crypto/credentials.d.ts +61 -0
  35. package/dist/crypto/credentials.d.ts.map +1 -1
  36. package/dist/crypto/credentials.js +154 -58
  37. package/dist/crypto/credentials.js.map +1 -1
  38. package/dist/docs/export-document.js +830 -190
  39. package/dist/docs/export-document.js.map +3 -3
  40. package/dist/doctor/dependency-cycles.d.ts +41 -0
  41. package/dist/doctor/dependency-cycles.d.ts.map +1 -0
  42. package/dist/doctor/dependency-cycles.js +39 -0
  43. package/dist/doctor/dependency-cycles.js.map +1 -0
  44. package/dist/doctor/index.d.ts +2 -0
  45. package/dist/doctor/index.d.ts.map +1 -1
  46. package/dist/doctor/index.js +1 -0
  47. package/dist/doctor/index.js.map +1 -1
  48. package/dist/doctor/row-identity.d.ts +11 -0
  49. package/dist/doctor/row-identity.d.ts.map +1 -1
  50. package/dist/doctor/row-identity.js +67 -9
  51. package/dist/doctor/row-identity.js.map +1 -1
  52. package/dist/error-catalog.d.ts.map +1 -1
  53. package/dist/error-catalog.js +4 -0
  54. package/dist/error-catalog.js.map +1 -1
  55. package/dist/error-registry.d.ts.map +1 -1
  56. package/dist/error-registry.js +8 -0
  57. package/dist/error-registry.js.map +1 -1
  58. package/dist/llm/plugin-facade.js +857 -217
  59. package/dist/llm/plugin-facade.js.map +3 -3
  60. package/dist/nexus/workspace.d.ts.map +1 -1
  61. package/dist/nexus/workspace.js +54 -4
  62. package/dist/nexus/workspace.js.map +1 -1
  63. package/dist/orchestrate/lifecycle-ops.js +1 -1
  64. package/dist/orchestrate/lifecycle-ops.js.map +1 -1
  65. package/dist/orchestrate/pivot.d.ts.map +1 -1
  66. package/dist/orchestrate/pivot.js +4 -2
  67. package/dist/orchestrate/pivot.js.map +1 -1
  68. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  69. package/dist/orchestrate/query-ops.js +3 -3
  70. package/dist/orchestrate/query-ops.js.map +1 -1
  71. package/dist/orchestrate/spawn-ops.js +1 -1
  72. package/dist/orchestrate/spawn-ops.js.map +1 -1
  73. package/dist/orchestration/index.js +1 -1
  74. package/dist/orchestration/index.js.map +1 -1
  75. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  76. package/dist/orchestration/lead-rollup.js +3 -3
  77. package/dist/orchestration/lead-rollup.js.map +1 -1
  78. package/dist/orchestration/parallel.js +1 -1
  79. package/dist/orchestration/parallel.js.map +1 -1
  80. package/dist/orchestration/wave-topic.d.ts +4 -2
  81. package/dist/orchestration/wave-topic.d.ts.map +1 -1
  82. package/dist/orchestration/wave-topic.js +6 -4
  83. package/dist/orchestration/wave-topic.js.map +1 -1
  84. package/dist/orchestration/waves.d.ts +2 -1
  85. package/dist/orchestration/waves.d.ts.map +1 -1
  86. package/dist/orchestration/waves.js +4 -3
  87. package/dist/orchestration/waves.js.map +1 -1
  88. package/dist/phases/index.d.ts.map +1 -1
  89. package/dist/phases/index.js +4 -2
  90. package/dist/phases/index.js.map +1 -1
  91. package/dist/selfimprove/fix-gen.js +856 -216
  92. package/dist/selfimprove/fix-gen.js.map +3 -3
  93. package/dist/session/engine-ops.d.ts.map +1 -1
  94. package/dist/session/engine-ops.js +77 -49
  95. package/dist/session/engine-ops.js.map +1 -1
  96. package/dist/sessions/focus-state-store.d.ts +69 -23
  97. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  98. package/dist/sessions/focus-state-store.js +113 -27
  99. package/dist/sessions/focus-state-store.js.map +1 -1
  100. package/dist/sessions/handoff.js +1 -1
  101. package/dist/sessions/handoff.js.map +1 -1
  102. package/dist/sessions/index.d.ts.map +1 -1
  103. package/dist/sessions/index.js +24 -13
  104. package/dist/sessions/index.js.map +1 -1
  105. package/dist/sessions/terminal-identity.d.ts +165 -17
  106. package/dist/sessions/terminal-identity.d.ts.map +1 -1
  107. package/dist/sessions/terminal-identity.js +341 -32
  108. package/dist/sessions/terminal-identity.js.map +1 -1
  109. package/dist/skills/orchestrator/startup.js +2 -2
  110. package/dist/skills/orchestrator/startup.js.map +1 -1
  111. package/dist/snapshot/index.d.ts +4 -0
  112. package/dist/snapshot/index.d.ts.map +1 -1
  113. package/dist/snapshot/index.js +50 -3
  114. package/dist/snapshot/index.js.map +1 -1
  115. package/dist/store/db-helpers.d.ts +15 -2
  116. package/dist/store/db-helpers.d.ts.map +1 -1
  117. package/dist/store/db-helpers.js +84 -3
  118. package/dist/store/db-helpers.js.map +1 -1
  119. package/dist/store/dependency-cycles.d.ts +164 -0
  120. package/dist/store/dependency-cycles.d.ts.map +1 -0
  121. package/dist/store/dependency-cycles.js +360 -0
  122. package/dist/store/dependency-cycles.js.map +1 -0
  123. package/dist/store/display-id-alias.d.ts +93 -37
  124. package/dist/store/display-id-alias.d.ts.map +1 -1
  125. package/dist/store/display-id-alias.js +590 -115
  126. package/dist/store/display-id-alias.js.map +1 -1
  127. package/dist/store/dual-scope-db.d.ts.map +1 -1
  128. package/dist/store/dual-scope-db.js +34 -7
  129. package/dist/store/dual-scope-db.js.map +1 -1
  130. package/dist/store/exodus/migrate.d.ts.map +1 -1
  131. package/dist/store/exodus/migrate.js +8 -1
  132. package/dist/store/exodus/migrate.js.map +1 -1
  133. package/dist/store/global-salt.d.ts +35 -0
  134. package/dist/store/global-salt.d.ts.map +1 -1
  135. package/dist/store/global-salt.js +136 -16
  136. package/dist/store/global-salt.js.map +1 -1
  137. package/dist/store/migration-sqlite.d.ts.map +1 -1
  138. package/dist/store/migration-sqlite.js +19 -11
  139. package/dist/store/migration-sqlite.js.map +1 -1
  140. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  141. package/dist/store/portable-bundle-scan.js +6 -0
  142. package/dist/store/portable-bundle-scan.js.map +1 -1
  143. package/dist/store/row-identity-registry.d.ts.map +1 -1
  144. package/dist/store/row-identity-registry.js +11 -3
  145. package/dist/store/row-identity-registry.js.map +1 -1
  146. package/dist/store/row-identity.d.ts +91 -1
  147. package/dist/store/row-identity.d.ts.map +1 -1
  148. package/dist/store/row-identity.js +276 -7
  149. package/dist/store/row-identity.js.map +1 -1
  150. package/dist/store/safety-data-accessor.d.ts +3 -2
  151. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  152. package/dist/store/safety-data-accessor.js +5 -2
  153. package/dist/store/safety-data-accessor.js.map +1 -1
  154. package/dist/store/session-store.d.ts +63 -3
  155. package/dist/store/session-store.d.ts.map +1 -1
  156. package/dist/store/session-store.js +121 -8
  157. package/dist/store/session-store.js.map +1 -1
  158. package/dist/store/split-brain-import.d.ts.map +1 -1
  159. package/dist/store/split-brain-import.js +36 -0
  160. package/dist/store/split-brain-import.js.map +1 -1
  161. package/dist/store/sqlite-data-accessor.d.ts +50 -3
  162. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  163. package/dist/store/sqlite-data-accessor.js +246 -13
  164. package/dist/store/sqlite-data-accessor.js.map +1 -1
  165. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  166. package/dist/store/tasks-sqlite.js +14 -2
  167. package/dist/store/tasks-sqlite.js.map +1 -1
  168. package/dist/store/umbrella-data-accessor.d.ts +3 -2
  169. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  170. package/dist/store/umbrella-data-accessor.js +5 -2
  171. package/dist/store/umbrella-data-accessor.js.map +1 -1
  172. package/dist/system/health.d.ts +2 -0
  173. package/dist/system/health.d.ts.map +1 -1
  174. package/dist/system/health.js +54 -0
  175. package/dist/system/health.js.map +1 -1
  176. package/dist/task-work/index.d.ts.map +1 -1
  177. package/dist/task-work/index.js +9 -6
  178. package/dist/task-work/index.js.map +1 -1
  179. package/dist/tasks/analyze.d.ts.map +1 -1
  180. package/dist/tasks/analyze.js +3 -2
  181. package/dist/tasks/analyze.js.map +1 -1
  182. package/dist/tasks/evidence.d.ts +19 -1
  183. package/dist/tasks/evidence.d.ts.map +1 -1
  184. package/dist/tasks/evidence.js +79 -18
  185. package/dist/tasks/evidence.js.map +1 -1
  186. package/dist/tasks/infer-add-params.js +1 -1
  187. package/dist/tasks/infer-add-params.js.map +1 -1
  188. package/dist/tasks/task-context.d.ts.map +1 -1
  189. package/dist/tasks/task-context.js +3 -1
  190. package/dist/tasks/task-context.js.map +1 -1
  191. package/dist/tasks/task-import.d.ts.map +1 -1
  192. package/dist/tasks/task-import.js +11 -3
  193. package/dist/tasks/task-import.js.map +1 -1
  194. package/dist/tasks/task-next.d.ts +5 -1
  195. package/dist/tasks/task-next.d.ts.map +1 -1
  196. package/dist/tasks/task-next.js +7 -2
  197. package/dist/tasks/task-next.js.map +1 -1
  198. package/dist/validation/engine-ops.d.ts.map +1 -1
  199. package/dist/validation/engine-ops.js +3 -2
  200. package/dist/validation/engine-ops.js.map +1 -1
  201. package/dist/workgraph/scaffold-apply.d.ts.map +1 -1
  202. package/dist/workgraph/scaffold-apply.js +14 -5
  203. package/dist/workgraph/scaffold-apply.js.map +1 -1
  204. package/migrations/drizzle-cleo-project/20260930160000_t12886-dependency-cycle-guard/migration.sql +76 -0
  205. package/migrations/drizzle-cleo-project/20260930160000_t12886-dependency-cycle-guard/revert.sql +7 -0
  206. package/package.json +13 -13
  207. package/templates/CLEO-INJECTION.md +2 -2
  208. package/templates/CLEO-REFERENCE.md +1 -1
@@ -13,9 +13,12 @@ import { mkdir, readFile, writeFile } from 'node:fs/promises';
13
13
  import { dirname, join } from 'node:path';
14
14
  import { resolveCleoDir } from '../paths.js';
15
15
  import { getTaskAccessor } from '../store/data-accessor.js';
16
+ import { SameRowPresentError } from '../store/db-helpers.js';
16
17
  import { queryTasksIncludingArchived } from '../store/import-remap.js';
18
+ import { rowUidFillEnabled } from '../store/row-identity-flag.js';
17
19
  /** Snapshot format version. */
18
- const SNAPSHOT_FORMAT_VERSION = '1.0.0';
20
+ /** 1.1.0 (T12806): tasks may carry `uid` / `birthFp` (row uids on). */
21
+ const SNAPSHOT_FORMAT_VERSION = '1.1.0';
19
22
  /**
20
23
  * Strip a Task down to its portable snapshot representation.
21
24
  * Removes local-only fields: position, positionVersion, verification,
@@ -59,7 +62,22 @@ export async function exportSnapshot(cwd) {
59
62
  const { tasks } = await accessor.queryTasks({});
60
63
  const projectMeta = await accessor.getMetaValue('project');
61
64
  const version = await accessor.getMetaValue('version');
62
- const snapshotTasks = tasks.map(toSnapshotTask);
65
+ // T12806: carry each task's row identity, so a restore re-creates the same
66
+ // row rather than a new one. Row uids off: the snapshot is unchanged.
67
+ const identities = new Map((rowUidFillEnabled()
68
+ ? ((await accessor.getTaskIdentities?.(tasks.map((t) => t.id))) ?? [])
69
+ : []).map((r) => [r.id, r]));
70
+ const snapshotTasks = tasks.map((task) => {
71
+ const row = toSnapshotTask(task);
72
+ const identity = identities.get(task.id);
73
+ if (!identity?.uid)
74
+ return row;
75
+ return {
76
+ ...row,
77
+ uid: identity.uid,
78
+ ...(identity.birthFp ? { birthFp: identity.birthFp } : {}),
79
+ };
80
+ });
63
81
  const checksum = computeChecksum(snapshotTasks);
64
82
  return {
65
83
  $schema: 'https://lafs.dev/schemas/v1/cleo-snapshot.schema.json',
@@ -136,6 +154,10 @@ export async function importSnapshot(snapshot, cwd) {
136
154
  conflicts: [],
137
155
  };
138
156
  const localTaskMap = new Map(localTasks.map((t) => [t.id, t]));
157
+ // T12806: the row identity of the local tasks the snapshot names (uids on).
158
+ const localUids = new Map((rowUidFillEnabled()
159
+ ? ((await accessor.getTaskIdentities?.(snapshot.tasks.map((t) => t.id))) ?? [])
160
+ : []).map((r) => [r.id, r.uid]));
139
161
  // One transaction: a collision on any task leaves nothing half-imported (T12724).
140
162
  await accessor.transaction(async (tx) => {
141
163
  for (const snapshotTask of snapshot.tasks) {
@@ -159,10 +181,35 @@ export async function importSnapshot(snapshot, cwd) {
159
181
  completedAt: snapshotTask.completedAt,
160
182
  };
161
183
  // Missing locally: insert, never overwrite a task stored since (T12724).
162
- await tx.insertNewTask(newTask);
184
+ // A restore re-creates an existing row: it carries the snapshot's uid,
185
+ // or leaves it to the deterministic recipe, never a new one (T12806).
186
+ try {
187
+ await tx.insertNewTask(newTask, {
188
+ origin: 'imported',
189
+ uid: snapshotTask.uid ?? null,
190
+ birthFp: snapshotTask.birthFp ?? null,
191
+ });
192
+ }
193
+ catch (error) {
194
+ // The same row (uid + fingerprint) is here already, under another id
195
+ // or held for sync: writing it again would duplicate the work.
196
+ if (!(error instanceof SameRowPresentError))
197
+ throw error;
198
+ result.skipped++;
199
+ result.conflicts.push(`${snapshotTask.id}: already present ${error.presentAs === 'held' ? '(held for sync)' : `as ${error.presentAs}`} (same uid and birth fingerprint); not restored`);
200
+ continue;
201
+ }
163
202
  result.added++;
164
203
  continue;
165
204
  }
205
+ // The same id names DIFFERENT rows here and in the snapshot (row uids
206
+ // on): never overwrite one with the other; report it (T12806 review).
207
+ const localUid = localUids.get(snapshotTask.id);
208
+ if (snapshotTask.uid && localUid && localUid !== snapshotTask.uid) {
209
+ result.skipped++;
210
+ result.conflicts.push(`${snapshotTask.id}: the snapshot's task (uid ${snapshotTask.uid}) is a different row from the local one (uid ${localUid}); not overwritten`);
211
+ continue;
212
+ }
166
213
  // Task exists locally -- compare timestamps
167
214
  const localUpdated = localTask.updatedAt ?? localTask.createdAt;
168
215
  const snapshotUpdated = snapshotTask.updatedAt ?? snapshotTask.createdAt;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/snapshot/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/snapshot/index.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,9 @@
6
6
  *
7
7
  * @epic T4454
8
8
  */
9
- import type { ArchiveReasonValue, Session, Task } from '@cleocode/contracts';
9
+ import type { ArchiveReasonValue, Session, Task, TaskInsertIdentity } from '@cleocode/contracts';
10
10
  import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
11
+ import { CleoError } from '../errors.js';
11
12
  import type { NewTaskRow } from './tasks-schema.js';
12
13
  /** Drizzle database instance type. */
13
14
  type DrizzleDb = NodeSQLiteDatabase;
@@ -53,7 +54,19 @@ export declare function upsertTask(db: DrizzleDb, row: NewTaskRow, archiveFields
53
54
  * @throws CleoError `ID_COLLISION` when `row.id` is already stored.
54
55
  * @task T12724
55
56
  */
56
- export declare function insertNewTask(db: DrizzleDb, row: NewTaskRow): Promise<void>;
57
+ export declare function insertNewTask(db: DrizzleDb, row: NewTaskRow, identity?: TaskInsertIdentity): Promise<void>;
58
+ /**
59
+ * An import or restore named a row this store already holds: same uid AND
60
+ * same birth fingerprint (possibly under another display id after a re-mint,
61
+ * re-keyed, or held in the identity quarantine). Writing it again would
62
+ * duplicate the work, so the caller skips it and reports the conflict
63
+ * (T12806 review).
64
+ */
65
+ export declare class SameRowPresentError extends CleoError {
66
+ /** Where the row already is: its display id, or `held` when quarantined. */
67
+ readonly presentAs: string;
68
+ constructor(taskId: string, presentAs: string);
69
+ }
57
70
  /**
58
71
  * Parse a `labels_json` text column into a deduplicated string-array.
59
72
  *
@@ -1 +1 @@
1
- {"version":3,"file":"db-helpers.d.ts","sourceRoot":"","sources":["../../src/store/db-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,sCAAsC;AACtC,KAAK,SAAS,GAAG,kBAAkB,CAAC;AAEpC,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,UAAU,EACf,aAAa,CAAC,EAAE,aAAa,EAC7B,iBAAiB,UAAQ,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF;AAgGD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAa3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDlF;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAS9F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EAChD,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,IAAI,EAAE,EACb,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvF"}
1
+ {"version":3,"file":"db-helpers.d.ts","sourceRoot":"","sources":["../../src/store/db-helpers.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import { ExitCode } from '@cleocode/contracts';
10
10
  import { and, eq, inArray, sql } from 'drizzle-orm';
11
11
  import { CleoError } from '../errors.js';
12
12
  import { getLogger } from '../logger.js';
13
+ import { rethrowDependencyCycle } from './dependency-cycles.js';
14
+ import { rowUidFillEnabled } from './row-identity-flag.js';
13
15
  import * as schema from './tasks-schema.js';
14
16
  const log = getLogger('db-helpers');
15
17
  /**
@@ -44,8 +46,80 @@ export async function upsertTask(db, row, archiveFields, allowOrphanParent = fal
44
46
  * @throws CleoError `ID_COLLISION` when `row.id` is already stored.
45
47
  * @task T12724
46
48
  */
47
- export async function insertNewTask(db, row) {
48
- await writeTaskRow(db, row, undefined, false, true);
49
+ export async function insertNewTask(db, row, identity = { origin: 'new' }) {
50
+ await writeTaskRow(db, { ...row, ...(await importedIdentity(db, identity, row)) }, undefined, false, true);
51
+ }
52
+ /**
53
+ * An import or restore named a row this store already holds: same uid AND
54
+ * same birth fingerprint (possibly under another display id after a re-mint,
55
+ * re-keyed, or held in the identity quarantine). Writing it again would
56
+ * duplicate the work, so the caller skips it and reports the conflict
57
+ * (T12806 review).
58
+ */
59
+ export class SameRowPresentError extends CleoError {
60
+ /** Where the row already is: its display id, or `held` when quarantined. */
61
+ presentAs;
62
+ constructor(taskId, presentAs) {
63
+ super(ExitCode.ID_COLLISION, `Task ${taskId} is already in this store (${presentAs === 'held' ? 'held for sync' : `as ${presentAs}`}): same uid and birth fingerprint; not written again`, { details: { field: 'taskId', actual: taskId, expected: presentAs } });
64
+ this.presentAs = presentAs;
65
+ }
66
+ }
67
+ async function tableExists(db, table) {
68
+ const rows = await db.all(sql `SELECT 1 AS x FROM sqlite_master WHERE type = 'table' AND name = ${table}`);
69
+ return rows.length > 0;
70
+ }
71
+ /**
72
+ * The identity columns of an IMPORTED task (T12341 spec §5.1, T12806), only
73
+ * while row uids are on (`CLEO_ROW_UID_FILL=1`; off, nothing changes):
74
+ *
75
+ * - the source's `uid` + `birth_fp`, followed through `tasks_uid_aliases`
76
+ * when it was re-keyed here, when no row holds it;
77
+ * - {@link SameRowPresentError} when a row with that uid AND fingerprint is
78
+ * here already (another display id, or held in the quarantine);
79
+ * - otherwise an explicit NULL uid for the deterministic recipe (the TEMP
80
+ * trigger, else the next open), from the row's own key and birth as stored.
81
+ * A source without a creation time is no exception (T12806 review): an
82
+ * unknown-birth fingerprint next to the `created_at` the import wrote would
83
+ * be flagged by every recompute.
84
+ */
85
+ async function importedIdentity(db, identity, row) {
86
+ if (identity.origin === 'new' || !rowUidFillEnabled())
87
+ return {};
88
+ const fp = identity.birthFp ?? null;
89
+ const carried = identity.uid ?? null;
90
+ if (carried !== null && fp !== null) {
91
+ let uid = carried;
92
+ if (await tableExists(db, 'tasks_uid_aliases')) {
93
+ for (let hop = 0; hop < 32; hop++) {
94
+ const found = await db.all(sql `SELECT new_uid AS uid FROM tasks_uid_aliases
95
+ WHERE entity_table = 'tasks_tasks' AND old_uid = ${uid} AND old_birth_fp = ${fp}`);
96
+ const next = found[0];
97
+ if (!next)
98
+ break;
99
+ uid = next.uid;
100
+ }
101
+ }
102
+ const [holder] = await db
103
+ .select({ id: schema.tasks.id, birthFp: schema.tasks.birthFp })
104
+ .from(schema.tasks)
105
+ .where(eq(schema.tasks.uid, uid))
106
+ .limit(1)
107
+ .all();
108
+ if (holder && holder.birthFp === fp)
109
+ throw new SameRowPresentError(row.id, holder.id);
110
+ if (await tableExists(db, 'tasks_identity_quarantine')) {
111
+ const [held] = await db.all(sql `SELECT 1 AS x FROM tasks_identity_quarantine
112
+ WHERE entity_table = 'tasks_tasks' AND uid = ${uid} AND birth_fp = ${fp}`);
113
+ if (held)
114
+ throw new SameRowPresentError(row.id, 'held');
115
+ }
116
+ if (!holder)
117
+ return { uid, birthFp: fp };
118
+ // Another row holds the uid with another fingerprint: derive instead.
119
+ }
120
+ // A source without a creation time gets the recipe from the row as stored:
121
+ // its identity agrees with its `created_at`, so no recompute flags it.
122
+ return { uid: null, birthFp: null };
49
123
  }
50
124
  /** The shared write behind {@link upsertTask} and {@link insertNewTask}. */
51
125
  async function writeTaskRow(db, row, archiveFields, allowOrphanParent, insertOnly) {
@@ -329,7 +403,14 @@ export async function batchUpdateDependencies(db, tasks, validIds) {
329
403
  added.push({ taskId, dependsOn: depId });
330
404
  }
331
405
  if (added.length > 0) {
332
- await db.insert(schema.taskDependencies).values(added).onConflictDoNothing().run();
406
+ // T12886: the cycle-guard trigger refuses an edge that closes a cycle;
407
+ // rethrowDependencyCycle names the cycle for the caller.
408
+ try {
409
+ await db.insert(schema.taskDependencies).values(added).onConflictDoNothing().run();
410
+ }
411
+ catch (err) {
412
+ rethrowDependencyCycle(db, err, added);
413
+ }
333
414
  }
334
415
  }
335
416
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"db-helpers.js","sourceRoot":"","sources":["../../src/store/db-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-helpers.js","sourceRoot":"","sources":["../../src/store/db-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Dependency-cycle guard support for `tasks_task_dependencies` (T12886).
3
+ *
4
+ * The guard itself is the pair of BEFORE triggers created by the
5
+ * `drizzle-cleo-project/20260930160000_t12886-dependency-cycle-guard`
6
+ * migration: every writer, raw SQL included, is refused with
7
+ * {@link DEPENDENCY_CYCLE_CODE}. A trigger message must be a literal, so it
8
+ * cannot say WHICH cycle. This module supplies that part:
9
+ *
10
+ * - {@link rethrowDependencyCycle} turns the trigger abort into a
11
+ * {@link CleoError} that names the cycle (`T1 → T2 → T3 → T1`) and says
12
+ * how to fix it. The write chokepoints call it.
13
+ * - {@link detectDependencyCycles} finds cycles already stored (edges written
14
+ * before the guard existed) and proposes the edges to remove, for
15
+ * `cleo doctor dep-cycles`. It never writes.
16
+ *
17
+ * An edge `{ taskId, dependsOn }` means "taskId depends on dependsOn"; a cycle
18
+ * is printed in that direction, each arrow reading "depends on".
19
+ *
20
+ * @module
21
+ * @task T12886
22
+ */
23
+ import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
24
+ import { CleoError } from '../errors.js';
25
+ /** Stable error code raised by the dependency-cycle triggers. */
26
+ export declare const DEPENDENCY_CYCLE_CODE = "E_TASK_DEPENDENCY_CYCLE";
27
+ /** One dependency edge: `taskId` depends on `dependsOn`. */
28
+ export interface DependencyEdge {
29
+ /** The dependent task. */
30
+ readonly taskId: string;
31
+ /** The task it waits for. */
32
+ readonly dependsOn: string;
33
+ }
34
+ /** A proposed repair: remove this edge. */
35
+ export interface DependencyCycleRepair {
36
+ /** The edge to remove. */
37
+ readonly edge: DependencyEdge;
38
+ /** The command that removes it. */
39
+ readonly command: string;
40
+ /** The cycle this removal breaks, in "depends on" order, first id repeated last. */
41
+ readonly breaks: readonly string[];
42
+ }
43
+ /** One strongly connected component of the dependency graph that contains a cycle. */
44
+ export interface DependencyCycleComponent {
45
+ /** Every task in the component, sorted. */
46
+ readonly tasks: readonly string[];
47
+ /** One cycle through the component, first id repeated last. */
48
+ readonly cycle: readonly string[];
49
+ }
50
+ /** Result of {@link detectDependencyCycles}. */
51
+ export interface DependencyCycleReport {
52
+ /** Edges examined. */
53
+ readonly edgeCount: number;
54
+ /** Components that contain at least one cycle (self-dependencies included). */
55
+ readonly components: readonly DependencyCycleComponent[];
56
+ /**
57
+ * Edges whose removal leaves the graph acyclic: the back edges of one
58
+ * depth-first traversal. Not guaranteed minimal (that problem is NP-hard);
59
+ * review before applying.
60
+ */
61
+ readonly repairPlan: readonly DependencyCycleRepair[];
62
+ }
63
+ /** Render a cycle as `T1 → T2 → T1`. */
64
+ export declare function formatDependencyCycle(cycle: readonly string[]): string;
65
+ /**
66
+ * The cycle that `edge` would close over `existing`, or `null` when it closes none.
67
+ *
68
+ * @param existing - Edges already stored.
69
+ * @param edge - The edge being added.
70
+ * @returns The cycle in "depends on" order, starting and ending at `edge.taskId`.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * findClosedCycle([{ taskId: 'T2', dependsOn: 'T1' }], { taskId: 'T1', dependsOn: 'T2' });
75
+ * // => ['T1', 'T2', 'T1']
76
+ * ```
77
+ */
78
+ export declare function findClosedCycle(existing: Iterable<DependencyEdge>, edge: DependencyEdge): string[] | null;
79
+ /**
80
+ * Build the error for an edge that closes `cycle`.
81
+ *
82
+ * @param edge - The refused edge.
83
+ * @param cycle - The cycle it closes, from {@link findClosedCycle}.
84
+ * @returns A {@link CleoError} naming the cycle, with a fix hint.
85
+ */
86
+ export declare function dependencyCycleError(edge: DependencyEdge, cycle: readonly string[]): CleoError;
87
+ /**
88
+ * True when `err` is the dependency-cycle trigger abort. Drizzle wraps the
89
+ * SQLite error in a `DrizzleQueryError` whose own message is the failed SQL,
90
+ * so the `cause` chain is searched too.
91
+ */
92
+ export declare function isDependencyCycleAbort(err: unknown): boolean;
93
+ /**
94
+ * Read every stored dependency edge.
95
+ *
96
+ * @param db - Drizzle handle on the project store.
97
+ * @returns All rows of `tasks_task_dependencies`.
98
+ */
99
+ export declare function readDependencyEdges(db: NodeSQLiteDatabase): DependencyEdge[];
100
+ /**
101
+ * Rethrow a write error, naming the cycle when it is the cycle-guard abort.
102
+ *
103
+ * Call it from the catch of a statement that inserted `attempted`. SQLite
104
+ * rolls back the aborted statement, so the stored edges are the state before
105
+ * it; the attempted edges are replayed over them in order to find the one
106
+ * that closes a cycle.
107
+ *
108
+ * @param db - Drizzle handle the statement ran on.
109
+ * @param err - The caught error.
110
+ * @param attempted - The edges the statement tried to insert, in order.
111
+ * @returns Never; always throws.
112
+ */
113
+ export declare function rethrowDependencyCycle(db: NodeSQLiteDatabase, err: unknown, attempted: readonly DependencyEdge[]): never;
114
+ /** A dependency edge left out because it would close a cycle. */
115
+ export interface SkippedDependencyEdge {
116
+ /** The edge that was not written. */
117
+ readonly edge: DependencyEdge;
118
+ /** The cycle it would have closed, first id repeated last. */
119
+ readonly cycle: readonly string[];
120
+ /** One-line explanation naming the cycle. */
121
+ readonly message: string;
122
+ }
123
+ /**
124
+ * Insert one edge (ignoring an exact duplicate); when the cycle guard refuses
125
+ * it, leave it out and say why instead of failing.
126
+ *
127
+ * For bulk importers that must keep a record and its other edges when one
128
+ * edge is refused (legacy JSON import). Any other error propagates.
129
+ *
130
+ * @param db - Drizzle handle on the project store.
131
+ * @param edge - The edge to insert.
132
+ * @returns `null` when written (or already present), else what was skipped.
133
+ */
134
+ export declare function insertDependencyEdgeOrSkipCycle(db: NodeSQLiteDatabase, edge: DependencyEdge): SkippedDependencyEdge | null;
135
+ /**
136
+ * Split planned edges into the ones that can be written and the ones that
137
+ * would close a cycle, replaying them in order over `existing`. Deterministic:
138
+ * of two edges that close a cycle together, the LATER one is dropped. Pure.
139
+ *
140
+ * @param existing - Edges already stored in the target.
141
+ * @param planned - Edges to add, in plan order.
142
+ * @returns The dropped edges with their cycles; every other planned edge is safe.
143
+ */
144
+ export declare function dropCycleClosingEdges(existing: readonly DependencyEdge[], planned: readonly DependencyEdge[]): SkippedDependencyEdge[];
145
+ /**
146
+ * Find every stored dependency cycle and a repair plan. Pure: never writes.
147
+ *
148
+ * Tarjan's algorithm (iterative, so a long chain cannot overflow the stack)
149
+ * finds the strongly connected components; any component with more than one
150
+ * task, or a task that depends on itself, holds a cycle. The repair plan is
151
+ * the back edges of a depth-first traversal, whose removal leaves the graph
152
+ * acyclic.
153
+ *
154
+ * @param edges - The stored edges.
155
+ * @returns Cyclic components and the edges to remove.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * const report = detectDependencyCycles(readDependencyEdges(db));
160
+ * for (const r of report.repairPlan) console.log(r.command);
161
+ * ```
162
+ */
163
+ export declare function detectDependencyCycles(edges: readonly DependencyEdge[]): DependencyCycleReport;
164
+ //# sourceMappingURL=dependency-cycles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-cycles.d.ts","sourceRoot":"","sources":["../../src/store/dependency-cycles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAE/D,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACvD;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEtE;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,IAAI,EAAE,cAAc,GACnB,MAAM,EAAE,GAAG,IAAI,CAIjB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAoB9F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM5D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,kBAAkB,GAAG,cAAc,EAAE,CAQ5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,kBAAkB,EACtB,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,KAAK,CASP;AAED,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,cAAc,GACnB,qBAAqB,GAAG,IAAI,CAS9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,qBAAqB,EAAE,CAgBzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,qBAAqB,CAiH9F"}