@cleocode/core 2026.10.9 → 2026.10.10-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/decide/sites/registry.d.ts +26 -0
  3. package/dist/decide/sites/registry.d.ts.map +1 -1
  4. package/dist/decide/sites/registry.js +25 -0
  5. package/dist/decide/sites/registry.js.map +1 -1
  6. package/dist/docs/doctor.d.ts +15 -5
  7. package/dist/docs/doctor.d.ts.map +1 -1
  8. package/dist/docs/doctor.js +182 -83
  9. package/dist/docs/doctor.js.map +1 -1
  10. package/dist/docs/triage.d.ts +211 -0
  11. package/dist/docs/triage.d.ts.map +1 -0
  12. package/dist/docs/triage.js +473 -0
  13. package/dist/docs/triage.js.map +1 -0
  14. package/dist/doctor/system-health.d.ts.map +1 -1
  15. package/dist/doctor/system-health.js +54 -8
  16. package/dist/doctor/system-health.js.map +1 -1
  17. package/dist/hooks/release-gate.d.ts +10 -0
  18. package/dist/hooks/release-gate.d.ts.map +1 -1
  19. package/dist/hooks/release-gate.js +9 -3
  20. package/dist/hooks/release-gate.js.map +1 -1
  21. package/dist/project-scope.d.ts +1 -0
  22. package/dist/project-scope.d.ts.map +1 -1
  23. package/dist/project-scope.js +69 -6
  24. package/dist/project-scope.js.map +1 -1
  25. package/dist/resources/run-admission.d.ts +96 -0
  26. package/dist/resources/run-admission.d.ts.map +1 -1
  27. package/dist/resources/run-admission.js +155 -0
  28. package/dist/resources/run-admission.js.map +1 -1
  29. package/dist/resources/run-governed.d.ts +5 -1
  30. package/dist/resources/run-governed.d.ts.map +1 -1
  31. package/dist/resources/run-governed.js +34 -1
  32. package/dist/resources/run-governed.js.map +1 -1
  33. package/dist/spawn/agent-identity.d.ts +2 -0
  34. package/dist/spawn/agent-identity.d.ts.map +1 -1
  35. package/dist/spawn/agent-identity.js +72 -4
  36. package/dist/spawn/agent-identity.js.map +1 -1
  37. package/dist/store/blob-keep.d.ts +15 -0
  38. package/dist/store/blob-keep.d.ts.map +1 -1
  39. package/dist/store/blob-keep.js +20 -0
  40. package/dist/store/blob-keep.js.map +1 -1
  41. package/dist/store/conduit-doc-history.d.ts +265 -0
  42. package/dist/store/conduit-doc-history.d.ts.map +1 -0
  43. package/dist/store/conduit-doc-history.js +468 -0
  44. package/dist/store/conduit-doc-history.js.map +1 -0
  45. package/dist/store/row-identity-registry.d.ts +6 -4
  46. package/dist/store/row-identity-registry.d.ts.map +1 -1
  47. package/dist/store/row-identity-registry.js +59 -10
  48. package/dist/store/row-identity-registry.js.map +1 -1
  49. package/dist/store/schema/cleo-project/conduit.d.ts +554 -7
  50. package/dist/store/schema/cleo-project/conduit.d.ts.map +1 -1
  51. package/dist/store/schema/cleo-project/conduit.js +223 -30
  52. package/dist/store/schema/cleo-project/conduit.js.map +1 -1
  53. package/dist/store/schema/conduit-schema.d.ts +211 -3
  54. package/dist/store/schema/conduit-schema.d.ts.map +1 -1
  55. package/dist/store/schema/conduit-schema.js +53 -14
  56. package/dist/store/schema/conduit-schema.js.map +1 -1
  57. package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
  58. package/dist/store/sync/apply/parent-delete.js +6 -0
  59. package/dist/store/sync/apply/parent-delete.js.map +1 -1
  60. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  61. package/dist/store/sync/timestamp-canon.js +7 -0
  62. package/dist/store/sync/timestamp-canon.js.map +1 -1
  63. package/dist/store/table-classification.d.ts.map +1 -1
  64. package/dist/store/table-classification.js +31 -13
  65. package/dist/store/table-classification.js.map +1 -1
  66. package/dist/tasks/gate-runner.d.ts.map +1 -1
  67. package/dist/tasks/gate-runner.js +44 -5
  68. package/dist/tasks/gate-runner.js.map +1 -1
  69. package/dist/tasks/test-run-binding.d.ts +4 -1
  70. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  71. package/dist/tasks/test-run-binding.js +38 -2
  72. package/dist/tasks/test-run-binding.js.map +1 -1
  73. package/dist/worktree/worktree-adopt.d.ts.map +1 -1
  74. package/dist/worktree/worktree-adopt.js +45 -1
  75. package/dist/worktree/worktree-adopt.js.map +1 -1
  76. package/migrations/drizzle-cleo-project/20261011000000_t13354-conduit-history-rekey/migration.sql +274 -0
  77. package/package.json +13 -13
  78. package/schemas/project-info.schema.json +2 -2
  79. package/templates/git-hooks/commit-msg +2 -0
  80. package/templates/git-hooks/legacy-hashes.json +1 -0
  81. package/templates/git-hooks/pre-push +3 -0
@@ -16,7 +16,10 @@
16
16
  * - the newest working-tree modification of any path the branch changed
17
17
  * against origin's default branch (committed, uncommitted or untracked;
18
18
  * the report itself excluded) — or, with no origin to diff against, any
19
- * uncommitted tracked edit;
19
+ * uncommitted tracked edit — except a path that a checkout or merge
20
+ * after the run rewrote with identical bytes (HEAD moved and the file
21
+ * equals its blob at both HEADs; T13567, T13569). A bare touch still
22
+ * stales: without a run-time fingerprint it looks like a revert;
20
23
  * - for each uncommitted deletion (a rename's old path included, since a
21
24
  * move keeps the file's own mtime), the modification time of the
22
25
  * nearest existing directory it was removed from.
@@ -196,6 +199,39 @@ function newestModified(root, paths) {
196
199
  }
197
200
  return newest;
198
201
  }
202
+ /**
203
+ * The most recently modified of `paths` modified after the run, leaving out a
204
+ * path that a checkout or merge after the run rewrote with the same bytes
205
+ * (T13567, narrowed by T13569).
206
+ *
207
+ * A path is left out only when all hold: HEAD moved after the run (HEAD as of
208
+ * the run, {@link headAtRun}, is not HEAD now), and the file's current blob
209
+ * (`git hash-object`) equals its blob both at HEAD now and at HEAD as of the
210
+ * run — the move rewrote it without changing it. Nothing else is exempt: a
211
+ * bare `touch`, or a file that was dirty during the run and reverted to HEAD
212
+ * afterwards, cannot be told apart without a run-time content fingerprint, and
213
+ * a false pass is worse than a needless re-run, so its newer mtime still
214
+ * stales the report. When the reflog does not reach the run, every mtime after
215
+ * it counts.
216
+ */
217
+ function modifiedAfterRun(root, paths, clock) {
218
+ const after = paths
219
+ .map((path) => ({ path, at: mtimeOf(resolve(root, path)) }))
220
+ .filter((p) => p.at !== null && clock.after(p.at))
221
+ .sort((a, b) => b.at - a.at);
222
+ if (after.length === 0)
223
+ return null;
224
+ const blob = (args) => git(root, args)?.trim() || null;
225
+ const atRun = headAtRun(root, clock.after);
226
+ const head = blob(['rev-parse', 'HEAD']);
227
+ if (atRun === null || head === null || head === atRun)
228
+ return after[0] ?? null;
229
+ return (after.find((p) => {
230
+ const now = blob(['hash-object', '--', p.path]);
231
+ const at = (commit) => blob(['rev-parse', '--verify', '--quiet', `${commit}:./${p.path}`]);
232
+ return now === null || now !== at(head) || now !== at(atRun);
233
+ }) ?? null);
234
+ }
199
235
  /**
200
236
  * When each deletion against `base` (HEAD: the uncommitted ones) happened, as
201
237
  * far as the filesystem says: the mtime of the nearest existing directory it
@@ -337,7 +373,7 @@ export function reportFreshness(startTime, reportPath, root, atom) {
337
373
  }
338
374
  }
339
375
  const changes = scopedChangedPaths(root);
340
- const newest = newestModified(root, (changes?.paths ?? dirtyTracked(root)).filter((p) => p !== clock.reportRel));
376
+ const newest = modifiedAfterRun(root, (changes?.paths ?? dirtyTracked(root)).filter((p) => p !== clock.reportRel), clock);
341
377
  if (newest !== null && clock.after(newest.at)) {
342
378
  return stale(staleRefusal(ranAt, `${newest.path} was modified`, newest.at, rerun));
343
379
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-binding.js","sourceRoot":"","sources":["../../src/tasks/test-run-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-run-binding.js","sourceRoot":"","sources":["../../src/tasks/test-run-binding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-adopt.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EAEb,MAAM,qBAAqB,CAAC;AAU7B,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAwE5C;AAMD,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAkD7F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D"}
1
+ {"version":3,"file":"worktree-adopt.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EAEb,MAAM,qBAAqB,CAAC;AAU7B,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAiF5C;AA6CD,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAkD7F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D"}
@@ -35,7 +35,7 @@
35
35
  * @adr ADR-055 — worktree canonical paths
36
36
  * @adr ADR-062 — git merge --no-ff integration semantics
37
37
  */
38
- import { existsSync, readFileSync } from 'node:fs';
38
+ import { copyFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs';
39
39
  import { join, resolve } from 'node:path';
40
40
  import { engineError, engineSuccess } from '@cleocode/contracts/engine-result.js';
41
41
  import { getLogger } from '../logger.js';
@@ -92,6 +92,13 @@ export async function adoptWorktree(opts) {
92
92
  });
93
93
  }
94
94
  const branch = branchResult.branch;
95
+ // --- Seed and verify project-info.json (T13568 · T11035) ---
96
+ const seeded = seedProjectInfo(projectRoot, worktreePath);
97
+ if (typeof seeded !== 'string')
98
+ // @sync-invariant none:local-only adopting refuses a worktree whose local project-info names another project; nothing is written
99
+ return engineError('E_WORKTREE_IDENTITY_MISMATCH', seeded.mismatch, {
100
+ fix: 'Adopt the worktree from the project that owns it, or remove its stale .cleo/project-info.json.',
101
+ });
95
102
  // --- Resolve task ID ---
96
103
  const taskId = opts.taskId !== undefined ? opts.taskId : taskIdFromBranch(branch);
97
104
  // --- Upsert sentinel index ---
@@ -123,8 +130,45 @@ export async function adoptWorktree(opts) {
123
130
  source,
124
131
  isNew,
125
132
  adoptedAt,
133
+ projectInfo: seeded,
126
134
  });
127
135
  }
136
+ /** A `projectId` field of a project-info file, or `''` when absent or unreadable. */
137
+ function projectIdOf(infoPath) {
138
+ try {
139
+ const data = JSON.parse(readFileSync(infoPath, 'utf-8'));
140
+ return typeof data.projectId === 'string' ? data.projectId : '';
141
+ }
142
+ catch {
143
+ return '';
144
+ }
145
+ }
146
+ /**
147
+ * Give an adopted worktree the adopting project's `.cleo/project-info.json`
148
+ * (T13568), as `createWorktree` does at provision time (T11033), and verify the
149
+ * projectId matches (T11035). An existing file is kept when its projectId
150
+ * matches and refused when it names another project.
151
+ *
152
+ * @returns The outcome, or the mismatch to refuse with.
153
+ */
154
+ function seedProjectInfo(projectRoot, worktreePath) {
155
+ const parentInfo = join(projectRoot, '.cleo', 'project-info.json');
156
+ if (!existsSync(parentInfo))
157
+ return 'skipped';
158
+ const parentId = projectIdOf(parentInfo);
159
+ const worktreeInfo = join(worktreePath, '.cleo', 'project-info.json');
160
+ const outcome = existsSync(worktreeInfo) ? 'present' : 'seeded';
161
+ if (outcome === 'seeded') {
162
+ mkdirSync(join(worktreePath, '.cleo'), { recursive: true });
163
+ copyFileSync(parentInfo, worktreeInfo);
164
+ }
165
+ const worktreeId = projectIdOf(worktreeInfo);
166
+ if (worktreeId !== parentId)
167
+ return {
168
+ mismatch: `Worktree ${worktreePath} has projectId ${worktreeId || '(none)'} in .cleo/project-info.json, but the adopting project is ${parentId || '(none)'}`,
169
+ };
170
+ return outcome;
171
+ }
128
172
  /**
129
173
  * Read the branch name from a worktree directory.
130
174
  *
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-adopt.js","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-adopt.js","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ -- T13354 (saga T13339, epic T13340) — CleoDocs schema re-key: the conduit
2
+ -- history tables key on the immutable doc row uid, not the mutable slug.
3
+ --
4
+ -- Spec: `cleo docs fetch cleodocs-rearch-design` §3 + §10 (team-sync verdict,
5
+ -- T13365, incorporated); decision D11165.
6
+ --
7
+ -- What this file does:
8
+ --
9
+ -- 1. `conduit_attachments` gains the Stage C row identity columns (`uid`,
10
+ -- `birth_fp`) and a unique index on `uid` — ADD COLUMN only, no rebuild:
11
+ -- the doc row is the FK parent of the whole history family, so nothing
12
+ -- here touches its keys. Existing rows keep NULL until the open pass
13
+ -- fills them deterministically (store/row-identity.ts, the T12341
14
+ -- pattern); rows inserted by this build get theirs from the
15
+ -- per-connection TEMP trigger and `defaultRowUid`.
16
+ --
17
+ -- 2. `conduit_attachment_versions` is rebuilt (canonical recipe: create
18
+ -- `__new_…`, INSERT … SELECT, DROP, RENAME — the T11649 pattern):
19
+ -- - the `slug` FK (ON DELETE CASCADE) is gone; `slug` survives as a
20
+ -- nullable display/legacy column (no key, no FK) so the
21
+ -- signaldock→conduit column-intersection copy still carries it;
22
+ -- - `attachment_uid` REFERENCES `conduit_attachments(uid)` with NO
23
+ -- cascade — history survives the parent. `parent_version_uid` is a
24
+ -- SOFT self-reference (indexed, accessor-enforced): the rebuild idiom
25
+ -- cannot carry a self-FK — at the INSERT the old table still occupies
26
+ -- the name, so its `uid` is not yet a unique parent key ("foreign key
27
+ -- mismatch" when legacy rows exist);
28
+ -- - the UNIQUE(slug, version_number) constraint is dropped:
29
+ -- `version_number` is a locally minted display ordinal that collides
30
+ -- across devices, never a key (identity = uid + parent_version_uid
31
+ -- DAG);
32
+ -- - the table gains `uid` / `birth_fp` (NULL until the open fill).
33
+ -- The INSERT … SELECT carries every legacy row verbatim (new columns
34
+ -- NULL); it calls no non-deterministic function.
35
+ --
36
+ -- 3. `conduit_attachment_approvals` is rebuilt the same way: keyed by
37
+ -- `version_uid` (+ nullable `section_id`); the UNIQUE(slug, reviewer)
38
+ -- constraint is dropped because approvals are append-only now — a
39
+ -- revoke is a new row (tombstone), never an UPDATE/DELETE. `updated_at`
40
+ -- is carried for legacy rows; new rows leave it equal to `created_at`.
41
+ -- `version_uid` stays NULL on legacy rows (the old key was the display
42
+ -- ordinal, which cannot be resolved to a uid inside SQL).
43
+ --
44
+ -- 4. `conduit_attachment_contributors` is rebuilt keyed
45
+ -- (attachment_uid, agent_id) with the slug carried as a nullable legacy
46
+ -- column. The table is DERIVED (rebuilt from versions after apply) and
47
+ -- NOT synced (spec §10), so it gets no uid columns.
48
+ --
49
+ -- 5. New tables: `conduit_doc_slug_aliases` (old slug → doc uid lookup,
50
+ -- natural identity over (slug, doc_uid), uid is the primary key),
51
+ -- `conduit_doc_heads` (current-version projection per doc: references
52
+ -- `head_version_uid`, merge rule docs.head.max-hlc, conflicts recorded
53
+ -- on losing concurrent heads) and `section_crdt_states` (LOCAL-ONLY
54
+ -- Loro snapshot per doc section — deliberately no FK into a syncing
55
+ -- table, T12778; an apply that lands a version resets/rebases this
56
+ -- state instead of cascading).
57
+ --
58
+ -- Foreign keys are OFF for the rebuild window (the recipe requires it). No
59
+ -- statement deletes from or re-keys an FK parent (gate 36 rule 6), no DML
60
+ -- calls a non-deterministic function (gate 36 rule 5 — the `datetime('now')`
61
+ -- occurrences below are DDL column defaults, which are exempt), and no
62
+ -- trigger is created here (the owned-trigger clause rule does not apply).
63
+ --
64
+ -- @task T13354
65
+ -- @epic T13340
66
+ -- @saga T13339
67
+
68
+ PRAGMA foreign_keys = OFF;
69
+ --> statement-breakpoint
70
+
71
+ -- --------------------------------------------------------------------------
72
+ -- Step 1 — conduit_attachments: row identity columns (ADD COLUMN, no rebuild)
73
+ -- --------------------------------------------------------------------------
74
+ ALTER TABLE `conduit_attachments` ADD COLUMN `uid` text;
75
+ --> statement-breakpoint
76
+ ALTER TABLE `conduit_attachments` ADD COLUMN `birth_fp` text;
77
+ --> statement-breakpoint
78
+ CREATE UNIQUE INDEX IF NOT EXISTS `uq_conduit_attachments_uid` ON `conduit_attachments` (`uid`);
79
+ --> statement-breakpoint
80
+
81
+ -- --------------------------------------------------------------------------
82
+ -- Step 2 — rebuild conduit_attachment_versions (re-keyed to the doc uid)
83
+ -- --------------------------------------------------------------------------
84
+ DROP INDEX IF EXISTS `idx_conduit_attachment_versions_slug`;
85
+ --> statement-breakpoint
86
+ DROP INDEX IF EXISTS `idx_conduit_attachment_versions_author`;
87
+ --> statement-breakpoint
88
+ CREATE TABLE `__new_conduit_attachment_versions` (
89
+ `id` text PRIMARY KEY,
90
+ `uid` text,
91
+ `birth_fp` text,
92
+ `attachment_uid` text,
93
+ `parent_version_uid` text,
94
+ `slug` text,
95
+ `version_number` integer NOT NULL,
96
+ `author_agent_id` text NOT NULL,
97
+ `change_type` text DEFAULT 'patch' NOT NULL,
98
+ `patch_text` text,
99
+ `storage_key` text NOT NULL,
100
+ `content_hash` text NOT NULL,
101
+ `original_size` integer NOT NULL,
102
+ `compressed_size` integer NOT NULL,
103
+ `tokens` integer NOT NULL,
104
+ `change_summary` text,
105
+ `sections_modified` text DEFAULT '[]' NOT NULL,
106
+ `tokens_added` integer DEFAULT 0 NOT NULL,
107
+ `tokens_removed` integer DEFAULT 0 NOT NULL,
108
+ `created_at` text DEFAULT (datetime('now')) NOT NULL,
109
+ CONSTRAINT `fk_conduit_attachment_versions_attachment_uid` FOREIGN KEY (`attachment_uid`) REFERENCES `conduit_attachments`(`uid`) ON DELETE NO ACTION,
110
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
111
+ );
112
+ --> statement-breakpoint
113
+ INSERT INTO `__new_conduit_attachment_versions` (
114
+ `id`, `slug`, `version_number`, `author_agent_id`, `change_type`,
115
+ `patch_text`, `storage_key`, `content_hash`, `original_size`,
116
+ `compressed_size`, `tokens`, `change_summary`, `sections_modified`,
117
+ `tokens_added`, `tokens_removed`, `created_at`
118
+ )
119
+ SELECT
120
+ `id`, `slug`, `version_number`, `author_agent_id`, `change_type`,
121
+ `patch_text`, `storage_key`, `content_hash`, `original_size`,
122
+ `compressed_size`, `tokens`, `change_summary`, `sections_modified`,
123
+ `tokens_added`, `tokens_removed`, `created_at`
124
+ FROM `conduit_attachment_versions`;
125
+ --> statement-breakpoint
126
+ DROP TABLE `conduit_attachment_versions`;
127
+ --> statement-breakpoint
128
+ ALTER TABLE `__new_conduit_attachment_versions` RENAME TO `conduit_attachment_versions`;
129
+ --> statement-breakpoint
130
+ CREATE UNIQUE INDEX `uq_conduit_attachment_versions_uid` ON `conduit_attachment_versions` (`uid`);
131
+ --> statement-breakpoint
132
+ CREATE INDEX `idx_conduit_attachment_versions_attachment` ON `conduit_attachment_versions` (`attachment_uid`);
133
+ --> statement-breakpoint
134
+ CREATE INDEX `idx_conduit_attachment_versions_parent` ON `conduit_attachment_versions` (`parent_version_uid`);
135
+ --> statement-breakpoint
136
+ CREATE INDEX `idx_conduit_attachment_versions_author` ON `conduit_attachment_versions` (`author_agent_id`);
137
+ --> statement-breakpoint
138
+ -- Rebuilt tables must recreate EVERY index the consolidation migration
139
+ -- created: its apply-probe looks for them on journal-rebuilt stores, and a
140
+ -- missing one re-runs the consolidation. The slug index now covers a legacy
141
+ -- display column, but it must exist.
142
+ CREATE INDEX `idx_conduit_attachment_versions_slug` ON `conduit_attachment_versions` (`slug`);
143
+ --> statement-breakpoint
144
+
145
+ -- --------------------------------------------------------------------------
146
+ -- Step 3 — rebuild conduit_attachment_approvals (version-uid keyed,
147
+ -- append-only with tombstone revokes)
148
+ -- --------------------------------------------------------------------------
149
+ DROP INDEX IF EXISTS `idx_conduit_attachment_approvals_slug`;
150
+ --> statement-breakpoint
151
+ CREATE TABLE `__new_conduit_attachment_approvals` (
152
+ `id` text PRIMARY KEY,
153
+ `uid` text,
154
+ `birth_fp` text,
155
+ `attachment_uid` text,
156
+ `version_uid` text,
157
+ `section_id` text,
158
+ `slug` text,
159
+ `reviewer_agent_id` text NOT NULL,
160
+ `status` text DEFAULT 'pending' NOT NULL,
161
+ `comment` text,
162
+ `version_reviewed` integer NOT NULL,
163
+ `created_at` text DEFAULT (datetime('now')) NOT NULL,
164
+ `updated_at` text DEFAULT (datetime('now')) NOT NULL,
165
+ CONSTRAINT `fk_conduit_attachment_approvals_attachment_uid` FOREIGN KEY (`attachment_uid`) REFERENCES `conduit_attachments`(`uid`) ON DELETE NO ACTION,
166
+ CONSTRAINT `fk_conduit_attachment_approvals_version_uid` FOREIGN KEY (`version_uid`) REFERENCES `conduit_attachment_versions`(`uid`) ON DELETE NO ACTION,
167
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
168
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
169
+ );
170
+ --> statement-breakpoint
171
+ INSERT INTO `__new_conduit_attachment_approvals` (
172
+ `id`, `slug`, `reviewer_agent_id`, `status`, `comment`,
173
+ `version_reviewed`, `created_at`, `updated_at`
174
+ )
175
+ SELECT
176
+ `id`, `slug`, `reviewer_agent_id`, `status`, `comment`,
177
+ `version_reviewed`, `created_at`, `updated_at`
178
+ FROM `conduit_attachment_approvals`;
179
+ --> statement-breakpoint
180
+ DROP TABLE `conduit_attachment_approvals`;
181
+ --> statement-breakpoint
182
+ ALTER TABLE `__new_conduit_attachment_approvals` RENAME TO `conduit_attachment_approvals`;
183
+ --> statement-breakpoint
184
+ CREATE UNIQUE INDEX `uq_conduit_attachment_approvals_uid` ON `conduit_attachment_approvals` (`uid`);
185
+ --> statement-breakpoint
186
+ CREATE INDEX `idx_conduit_attachment_approvals_attachment` ON `conduit_attachment_approvals` (`attachment_uid`);
187
+ --> statement-breakpoint
188
+ CREATE INDEX `idx_conduit_attachment_approvals_version` ON `conduit_attachment_approvals` (`version_uid`);
189
+ --> statement-breakpoint
190
+ CREATE INDEX `idx_conduit_attachment_approvals_slug` ON `conduit_attachment_approvals` (`slug`);
191
+ --> statement-breakpoint
192
+
193
+ -- --------------------------------------------------------------------------
194
+ -- Step 4 — rebuild conduit_attachment_contributors (derived rollup keyed on
195
+ -- the doc uid; NOT synced — rebuilt from versions after apply)
196
+ -- --------------------------------------------------------------------------
197
+ CREATE TABLE `__new_conduit_attachment_contributors` (
198
+ `attachment_uid` text,
199
+ `slug` text,
200
+ `agent_id` text NOT NULL,
201
+ `version_count` integer DEFAULT 0 NOT NULL,
202
+ `total_tokens_added` integer DEFAULT 0 NOT NULL,
203
+ `total_tokens_removed` integer DEFAULT 0 NOT NULL,
204
+ `first_contribution_at` text NOT NULL,
205
+ `last_contribution_at` text NOT NULL,
206
+ CONSTRAINT `conduit_attachment_contributors_pk` PRIMARY KEY(`attachment_uid`, `agent_id`),
207
+ CONSTRAINT `fk_conduit_attachment_contributors_attachment_uid` FOREIGN KEY (`attachment_uid`) REFERENCES `conduit_attachments`(`uid`) ON DELETE NO ACTION,
208
+ CHECK ("first_contribution_at" IS NULL OR "first_contribution_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
209
+ CHECK ("last_contribution_at" IS NULL OR "last_contribution_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
210
+ );
211
+ --> statement-breakpoint
212
+ INSERT INTO `__new_conduit_attachment_contributors` (
213
+ `slug`, `agent_id`, `version_count`, `total_tokens_added`,
214
+ `total_tokens_removed`, `first_contribution_at`, `last_contribution_at`
215
+ )
216
+ SELECT
217
+ `slug`, `agent_id`, `version_count`, `total_tokens_added`,
218
+ `total_tokens_removed`, `first_contribution_at`, `last_contribution_at`
219
+ FROM `conduit_attachment_contributors`;
220
+ --> statement-breakpoint
221
+ DROP TABLE `conduit_attachment_contributors`;
222
+ --> statement-breakpoint
223
+ ALTER TABLE `__new_conduit_attachment_contributors` RENAME TO `conduit_attachment_contributors`;
224
+ --> statement-breakpoint
225
+
226
+ -- --------------------------------------------------------------------------
227
+ -- Step 5 — new tables: slug aliases, head projection, local CRDT state
228
+ -- --------------------------------------------------------------------------
229
+ CREATE TABLE IF NOT EXISTS `conduit_doc_slug_aliases` (
230
+ `slug` text NOT NULL,
231
+ `doc_uid` text NOT NULL,
232
+ `reason` text DEFAULT 'rename' NOT NULL,
233
+ `created_at` text DEFAULT (datetime('now')) NOT NULL,
234
+ `uid` text,
235
+ CONSTRAINT `conduit_doc_slug_aliases_pk` PRIMARY KEY(`slug`, `doc_uid`),
236
+ CONSTRAINT `fk_conduit_doc_slug_aliases_doc_uid` FOREIGN KEY (`doc_uid`) REFERENCES `conduit_attachments`(`uid`) ON DELETE NO ACTION,
237
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
238
+ );
239
+ --> statement-breakpoint
240
+ CREATE INDEX IF NOT EXISTS `idx_conduit_doc_slug_aliases_slug` ON `conduit_doc_slug_aliases` (`slug`);
241
+ --> statement-breakpoint
242
+ CREATE TABLE IF NOT EXISTS `conduit_doc_heads` (
243
+ `attachment_uid` text PRIMARY KEY,
244
+ `head_version_uid` text NOT NULL,
245
+ `head_hlc` text NOT NULL,
246
+ `conflict_count` integer DEFAULT 0 NOT NULL,
247
+ `last_conflict_json` text,
248
+ `updated_at` text DEFAULT (datetime('now')) NOT NULL,
249
+ `uid` text,
250
+ CONSTRAINT `fk_conduit_doc_heads_attachment_uid` FOREIGN KEY (`attachment_uid`) REFERENCES `conduit_attachments`(`uid`) ON DELETE NO ACTION,
251
+ CONSTRAINT `fk_conduit_doc_heads_head_version_uid` FOREIGN KEY (`head_version_uid`) REFERENCES `conduit_attachment_versions`(`uid`) ON DELETE NO ACTION,
252
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
253
+ );
254
+ --> statement-breakpoint
255
+ CREATE TABLE IF NOT EXISTS `section_crdt_states` (
256
+ `attachment_uid` text NOT NULL,
257
+ `section_id` text NOT NULL,
258
+ `snapshot` blob NOT NULL,
259
+ `base_version_uid` text,
260
+ `updated_at` text DEFAULT (datetime('now')) NOT NULL,
261
+ CONSTRAINT `section_crdt_states_pk` PRIMARY KEY(`attachment_uid`, `section_id`),
262
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
263
+ );
264
+ --> statement-breakpoint
265
+
266
+ -- Note: the uid unique indexes on the two new tables are deliberately NOT
267
+ -- created here. The open-time identity heal (store/row-identity.ts,
268
+ -- ensureRowIdentitySchema) owns them: in the Gate B replay a pre-identity
269
+ -- copy drops the uid columns, and a migration-time CREATE INDEX would run
270
+ -- before the heal re-adds them ("no such column"). The heal creates
271
+ -- `uq_<table>_uid` for every declared table at every open, on every store,
272
+ -- so fresh and existing stores alike get the index.
273
+
274
+ PRAGMA foreign_keys = ON;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/core",
3
- "version": "2026.10.9",
3
+ "version": "2026.10.10-canary.2",
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",
@@ -496,16 +496,16 @@
496
496
  "write-file-atomic": "^7.0.1",
497
497
  "yaml": "^2.8.3",
498
498
  "zod": "^4.3.6",
499
- "@cleocode/adapters": "2026.10.9",
500
- "@cleocode/agents": "2026.10.9",
501
- "@cleocode/caamp": "2026.10.9",
502
- "@cleocode/contracts": "2026.10.9",
503
- "@cleocode/git-shim": "2026.10.9",
504
- "@cleocode/lafs": "2026.10.9",
505
- "@cleocode/nexus": "2026.10.9",
506
- "@cleocode/paths": "2026.10.9",
507
- "@cleocode/skills": "2026.10.9",
508
- "@cleocode/worktree": "2026.10.9"
499
+ "@cleocode/adapters": "2026.10.10-canary.2",
500
+ "@cleocode/agents": "2026.10.10-canary.2",
501
+ "@cleocode/caamp": "2026.10.10-canary.2",
502
+ "@cleocode/contracts": "2026.10.10-canary.2",
503
+ "@cleocode/git-shim": "2026.10.10-canary.2",
504
+ "@cleocode/lafs": "2026.10.10-canary.2",
505
+ "@cleocode/nexus": "2026.10.10-canary.2",
506
+ "@cleocode/paths": "2026.10.10-canary.2",
507
+ "@cleocode/skills": "2026.10.10-canary.2",
508
+ "@cleocode/worktree": "2026.10.10-canary.2"
509
509
  },
510
510
  "engines": {
511
511
  "node": ">=24.16.0"
@@ -531,7 +531,7 @@
531
531
  "@types/proper-lockfile": "^4.1.4",
532
532
  "@types/tar": "^6.1.13",
533
533
  "@types/write-file-atomic": "^4.0.3",
534
- "@cleocode/utils": "2026.10.9"
534
+ "@cleocode/utils": "2026.10.10-canary.2"
535
535
  },
536
536
  "repository": {
537
537
  "type": "git",
@@ -540,7 +540,7 @@
540
540
  },
541
541
  "optionalDependencies": {
542
542
  "llmtxt": "^2026.5.15",
543
- "@cleocode/studio": "^2026.10.9"
543
+ "@cleocode/studio": "^2026.10.10-canary.2"
544
544
  },
545
545
  "scripts": {
546
546
  "build": "tsc && node scripts/copy-selfimprove-fixtures.mjs && node scripts/write-build-provenance.mjs",
@@ -79,8 +79,8 @@
79
79
  },
80
80
  "cleoVersion": {
81
81
  "type": "string",
82
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
83
- "description": "CLEO version that last modified this file (semver)."
82
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z.-]+)?(\\+[0-9A-Za-z.-]+)?$",
83
+ "description": "CLEO version that last modified this file (semver, including a prerelease such as -canary.1)."
84
84
  },
85
85
  "createdAt": {
86
86
  "type": "string",
@@ -54,6 +54,8 @@ case "$SUBJECT" in
54
54
  'fixup! '*) exit 0 ;;
55
55
  'squash! '*) exit 0 ;;
56
56
  'amend! '*) exit 0 ;;
57
+ # T13577: the empty commit `cleo init` makes so HEAD resolves (exact subject).
58
+ 'initial: cleo init') exit 0 ;;
57
59
  esac
58
60
 
59
61
  # Match `T` followed by 1+ digits anywhere in the subject.
@@ -14,6 +14,7 @@
14
14
  ],
15
15
  "pre-push": [
16
16
  "8a48d9672f27ae1ea9ebc40d7181ab737a1889e32b451594ba30ac7c2558c07c",
17
+ "d4cfb6d3b19f3bed129f682fd7f5571b60c0f67433e5219e94c02dbb72007030",
17
18
  "eb78947e1aba2bd4e4d5aa010093aa5a927fde0acda7f7d704d41cd4851a3cfb",
18
19
  "f6e39d6fb79fed8c6e0bca0edb43fb9421e6a0cae52b0fe1163a8839caf50389"
19
20
  ]
@@ -43,6 +43,9 @@ check_subject() {
43
43
  'fixup! '*) return 0 ;;
44
44
  'squash! '*) return 0 ;;
45
45
  'amend! '*) return 0 ;;
46
+ # T13577: the empty commit `cleo init` makes so HEAD resolves. Exact
47
+ # subject only, never a prefix, so it opens no general bypass.
48
+ 'initial: cleo init') return 0 ;;
46
49
  esac
47
50
  if printf '%s' "$subject" | grep -Eq 'T[0-9]+'; then
48
51
  return 0