@cleocode/core 2026.10.8 → 2026.10.9

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 (266) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/auto-sync-command-entry.d.ts +13 -0
  3. package/dist/cloud/auto-sync-command-entry.d.ts.map +1 -0
  4. package/dist/cloud/auto-sync-command-entry.js +18 -0
  5. package/dist/cloud/auto-sync-command-entry.js.map +1 -0
  6. package/dist/cloud/auto-sync-command.d.ts +64 -0
  7. package/dist/cloud/auto-sync-command.d.ts.map +1 -0
  8. package/dist/cloud/auto-sync-command.js +109 -0
  9. package/dist/cloud/auto-sync-command.js.map +1 -0
  10. package/dist/cloud/auto-sync.d.ts +111 -0
  11. package/dist/cloud/auto-sync.d.ts.map +1 -0
  12. package/dist/cloud/auto-sync.js +275 -0
  13. package/dist/cloud/auto-sync.js.map +1 -0
  14. package/dist/cloud/nexus-cloud-device-overview.d.ts +52 -0
  15. package/dist/cloud/nexus-cloud-device-overview.d.ts.map +1 -0
  16. package/dist/cloud/nexus-cloud-device-overview.js +105 -0
  17. package/dist/cloud/nexus-cloud-device-overview.js.map +1 -0
  18. package/dist/cloud/nexus-cloud-journal-activity.d.ts +56 -0
  19. package/dist/cloud/nexus-cloud-journal-activity.d.ts.map +1 -0
  20. package/dist/cloud/nexus-cloud-journal-activity.js +98 -0
  21. package/dist/cloud/nexus-cloud-journal-activity.js.map +1 -0
  22. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
  23. package/dist/cloud/nexus-cloud-status.js +88 -5
  24. package/dist/cloud/nexus-cloud-status.js.map +1 -1
  25. package/dist/cloud/nexus-vault.d.ts +19 -5
  26. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  27. package/dist/cloud/nexus-vault.js +376 -71
  28. package/dist/cloud/nexus-vault.js.map +1 -1
  29. package/dist/cloud/replica-rebind.d.ts +14 -0
  30. package/dist/cloud/replica-rebind.d.ts.map +1 -1
  31. package/dist/cloud/replica-rebind.js +20 -1
  32. package/dist/cloud/replica-rebind.js.map +1 -1
  33. package/dist/config.d.ts +10 -0
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +19 -0
  36. package/dist/config.js.map +1 -1
  37. package/dist/docs/docs-ops.d.ts +4 -2
  38. package/dist/docs/docs-ops.d.ts.map +1 -1
  39. package/dist/docs/docs-ops.js +107 -15
  40. package/dist/docs/docs-ops.js.map +1 -1
  41. package/dist/doctor/system-health.d.ts +76 -2
  42. package/dist/doctor/system-health.d.ts.map +1 -1
  43. package/dist/doctor/system-health.js +264 -41
  44. package/dist/doctor/system-health.js.map +1 -1
  45. package/dist/hooks/project-runner.d.ts +10 -0
  46. package/dist/hooks/project-runner.d.ts.map +1 -0
  47. package/dist/hooks/project-runner.js +328 -0
  48. package/dist/hooks/project-runner.js.map +1 -0
  49. package/dist/hooks/project-state.d.ts +41 -0
  50. package/dist/hooks/project-state.d.ts.map +1 -0
  51. package/dist/hooks/project-state.js +331 -0
  52. package/dist/hooks/project-state.js.map +1 -0
  53. package/dist/hooks/release-gate.d.ts +61 -0
  54. package/dist/hooks/release-gate.d.ts.map +1 -0
  55. package/dist/hooks/release-gate.js +70 -0
  56. package/dist/hooks/release-gate.js.map +1 -0
  57. package/dist/nexus/analyze-orchestrator.d.ts +2 -0
  58. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  59. package/dist/nexus/analyze-orchestrator.js +1 -0
  60. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  61. package/dist/nexus/freshness.d.ts +67 -3
  62. package/dist/nexus/freshness.d.ts.map +1 -1
  63. package/dist/nexus/freshness.js +130 -9
  64. package/dist/nexus/freshness.js.map +1 -1
  65. package/dist/nexus/refresh-child.d.ts +14 -0
  66. package/dist/nexus/refresh-child.d.ts.map +1 -0
  67. package/dist/nexus/refresh-child.js +24 -0
  68. package/dist/nexus/refresh-child.js.map +1 -0
  69. package/dist/orchestrate/spawn-ops.d.ts +8 -1
  70. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  71. package/dist/orchestrate/spawn-ops.js +42 -12
  72. package/dist/orchestrate/spawn-ops.js.map +1 -1
  73. package/dist/orchestration/spawn.d.ts +5 -0
  74. package/dist/orchestration/spawn.d.ts.map +1 -1
  75. package/dist/orchestration/spawn.js +4 -1
  76. package/dist/orchestration/spawn.js.map +1 -1
  77. package/dist/release/channel.d.ts.map +1 -1
  78. package/dist/release/channel.js +10 -0
  79. package/dist/release/channel.js.map +1 -1
  80. package/dist/release/github-pr.d.ts.map +1 -1
  81. package/dist/release/github-pr.js +1 -0
  82. package/dist/release/github-pr.js.map +1 -1
  83. package/dist/release/plan.d.ts +8 -3
  84. package/dist/release/plan.d.ts.map +1 -1
  85. package/dist/release/plan.js +72 -15
  86. package/dist/release/plan.js.map +1 -1
  87. package/dist/release/reconcile.d.ts.map +1 -1
  88. package/dist/release/reconcile.js +6 -15
  89. package/dist/release/reconcile.js.map +1 -1
  90. package/dist/sentient/daemon-entry.d.ts +6 -0
  91. package/dist/sentient/daemon-entry.d.ts.map +1 -1
  92. package/dist/sentient/daemon-entry.js +12 -0
  93. package/dist/sentient/daemon-entry.js.map +1 -1
  94. package/dist/sentient/worktree-dispatch.d.ts +7 -0
  95. package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
  96. package/dist/sentient/worktree-dispatch.js +37 -1
  97. package/dist/sentient/worktree-dispatch.js.map +1 -1
  98. package/dist/sessions/session-end-snapshot-entry.d.ts +4 -1
  99. package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -1
  100. package/dist/sessions/session-end-snapshot-entry.js +9 -1
  101. package/dist/sessions/session-end-snapshot-entry.js.map +1 -1
  102. package/dist/spawn/agent-identity.d.ts.map +1 -1
  103. package/dist/spawn/agent-identity.js +96 -1
  104. package/dist/spawn/agent-identity.js.map +1 -1
  105. package/dist/spawn/branch-lock.d.ts +27 -8
  106. package/dist/spawn/branch-lock.d.ts.map +1 -1
  107. package/dist/spawn/branch-lock.js +57 -73
  108. package/dist/spawn/branch-lock.js.map +1 -1
  109. package/dist/store/agent-resolver.d.ts +6 -0
  110. package/dist/store/agent-resolver.d.ts.map +1 -1
  111. package/dist/store/agent-resolver.js +2 -0
  112. package/dist/store/agent-resolver.js.map +1 -1
  113. package/dist/store/dual-scope-db.d.ts +20 -0
  114. package/dist/store/dual-scope-db.d.ts.map +1 -1
  115. package/dist/store/dual-scope-db.js +81 -8
  116. package/dist/store/dual-scope-db.js.map +1 -1
  117. package/dist/store/exodus/bare-family.d.ts.map +1 -1
  118. package/dist/store/exodus/bare-family.js +4 -1
  119. package/dist/store/exodus/bare-family.js.map +1 -1
  120. package/dist/store/exodus/migrate.d.ts.map +1 -1
  121. package/dist/store/exodus/migrate.js +2 -0
  122. package/dist/store/exodus/migrate.js.map +1 -1
  123. package/dist/store/exodus/on-open.d.ts.map +1 -1
  124. package/dist/store/exodus/on-open.js +16 -4
  125. package/dist/store/exodus/on-open.js.map +1 -1
  126. package/dist/store/exodus/reconcile.d.ts.map +1 -1
  127. package/dist/store/exodus/reconcile.js +2 -0
  128. package/dist/store/exodus/reconcile.js.map +1 -1
  129. package/dist/store/portable-bundle-import.d.ts +17 -0
  130. package/dist/store/portable-bundle-import.d.ts.map +1 -1
  131. package/dist/store/portable-bundle-import.js +46 -31
  132. package/dist/store/portable-bundle-import.js.map +1 -1
  133. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  134. package/dist/store/portable-bundle-scan.js +5 -0
  135. package/dist/store/portable-bundle-scan.js.map +1 -1
  136. package/dist/store/row-identity-registry.d.ts +4 -3
  137. package/dist/store/row-identity-registry.d.ts.map +1 -1
  138. package/dist/store/row-identity-registry.js +37 -35
  139. package/dist/store/row-identity-registry.js.map +1 -1
  140. package/dist/store/row-identity.d.ts.map +1 -1
  141. package/dist/store/row-identity.js +6 -1
  142. package/dist/store/row-identity.js.map +1 -1
  143. package/dist/store/schema/cleo-global/agent-registry.d.ts +16 -0
  144. package/dist/store/schema/cleo-global/agent-registry.d.ts.map +1 -1
  145. package/dist/store/schema/cleo-global/agent-registry.js +4 -1
  146. package/dist/store/schema/cleo-global/agent-registry.js.map +1 -1
  147. package/dist/store/schema/cleo-project/provenance-orphans.d.ts +126 -1
  148. package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -1
  149. package/dist/store/schema/cleo-project/provenance-orphans.js +41 -1
  150. package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -1
  151. package/dist/store/sqlite-data-accessor.d.ts +40 -0
  152. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  153. package/dist/store/sqlite-data-accessor.js +122 -0
  154. package/dist/store/sqlite-data-accessor.js.map +1 -1
  155. package/dist/store/sync/activity.d.ts +64 -0
  156. package/dist/store/sync/activity.d.ts.map +1 -0
  157. package/dist/store/sync/activity.js +220 -0
  158. package/dist/store/sync/activity.js.map +1 -0
  159. package/dist/store/sync/apply/applier.d.ts.map +1 -1
  160. package/dist/store/sync/apply/applier.js +58 -2
  161. package/dist/store/sync/apply/applier.js.map +1 -1
  162. package/dist/store/sync/apply/write-api.d.ts.map +1 -1
  163. package/dist/store/sync/apply/write-api.js +45 -3
  164. package/dist/store/sync/apply/write-api.js.map +1 -1
  165. package/dist/store/sync/capture.d.ts +6 -4
  166. package/dist/store/sync/capture.d.ts.map +1 -1
  167. package/dist/store/sync/capture.js +16 -4
  168. package/dist/store/sync/capture.js.map +1 -1
  169. package/dist/store/sync/collision-settle.d.ts +120 -0
  170. package/dist/store/sync/collision-settle.d.ts.map +1 -1
  171. package/dist/store/sync/collision-settle.js +342 -5
  172. package/dist/store/sync/collision-settle.js.map +1 -1
  173. package/dist/store/sync/flags.d.ts +34 -0
  174. package/dist/store/sync/flags.d.ts.map +1 -1
  175. package/dist/store/sync/flags.js +46 -0
  176. package/dist/store/sync/flags.js.map +1 -1
  177. package/dist/store/sync/genesis.d.ts +8 -0
  178. package/dist/store/sync/genesis.d.ts.map +1 -1
  179. package/dist/store/sync/genesis.js +18 -5
  180. package/dist/store/sync/genesis.js.map +1 -1
  181. package/dist/store/sync/push.d.ts +4 -2
  182. package/dist/store/sync/push.d.ts.map +1 -1
  183. package/dist/store/sync/push.js +10 -1
  184. package/dist/store/sync/push.js.map +1 -1
  185. package/dist/store/sync/rebind.d.ts +20 -0
  186. package/dist/store/sync/rebind.d.ts.map +1 -1
  187. package/dist/store/sync/rebind.js +86 -4
  188. package/dist/store/sync/rebind.js.map +1 -1
  189. package/dist/store/sync/reconcile-copy.d.ts +152 -0
  190. package/dist/store/sync/reconcile-copy.d.ts.map +1 -0
  191. package/dist/store/sync/reconcile-copy.js +428 -0
  192. package/dist/store/sync/reconcile-copy.js.map +1 -0
  193. package/dist/store/sync/reconcile.d.ts +80 -0
  194. package/dist/store/sync/reconcile.d.ts.map +1 -1
  195. package/dist/store/sync/reconcile.js +97 -5
  196. package/dist/store/sync/reconcile.js.map +1 -1
  197. package/dist/store/sync/repair.d.ts +11 -0
  198. package/dist/store/sync/repair.d.ts.map +1 -1
  199. package/dist/store/sync/repair.js +14 -3
  200. package/dist/store/sync/repair.js.map +1 -1
  201. package/dist/store/sync/replica.d.ts +74 -1
  202. package/dist/store/sync/replica.d.ts.map +1 -1
  203. package/dist/store/sync/replica.js +104 -6
  204. package/dist/store/sync/replica.js.map +1 -1
  205. package/dist/store/sync/row-meta.d.ts +4 -2
  206. package/dist/store/sync/row-meta.d.ts.map +1 -1
  207. package/dist/store/sync/row-meta.js +6 -4
  208. package/dist/store/sync/row-meta.js.map +1 -1
  209. package/dist/store/sync/sealer.d.ts +2 -0
  210. package/dist/store/sync/sealer.d.ts.map +1 -1
  211. package/dist/store/sync/sealer.js +33 -4
  212. package/dist/store/sync/sealer.js.map +1 -1
  213. package/dist/store/sync/structural.d.ts.map +1 -1
  214. package/dist/store/sync/structural.js +3 -1
  215. package/dist/store/sync/structural.js.map +1 -1
  216. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  217. package/dist/store/sync/timestamp-canon.js +2 -0
  218. package/dist/store/sync/timestamp-canon.js.map +1 -1
  219. package/dist/store/table-classification.d.ts +29 -0
  220. package/dist/store/table-classification.d.ts.map +1 -1
  221. package/dist/store/table-classification.js +85 -19
  222. package/dist/store/table-classification.js.map +1 -1
  223. package/dist/store/twin-collapse.d.ts.map +1 -1
  224. package/dist/store/twin-collapse.js +28 -10
  225. package/dist/store/twin-collapse.js.map +1 -1
  226. package/dist/store/vault-manifest.d.ts +5 -0
  227. package/dist/store/vault-manifest.d.ts.map +1 -1
  228. package/dist/store/vault-manifest.js +14 -1
  229. package/dist/store/vault-manifest.js.map +1 -1
  230. package/dist/tasks/affected-packages.d.ts +15 -5
  231. package/dist/tasks/affected-packages.d.ts.map +1 -1
  232. package/dist/tasks/affected-packages.js +20 -8
  233. package/dist/tasks/affected-packages.js.map +1 -1
  234. package/dist/tasks/done-record.d.ts +14 -4
  235. package/dist/tasks/done-record.d.ts.map +1 -1
  236. package/dist/tasks/done-record.js +21 -9
  237. package/dist/tasks/done-record.js.map +1 -1
  238. package/dist/tasks/evidence.d.ts.map +1 -1
  239. package/dist/tasks/evidence.js +45 -4
  240. package/dist/tasks/evidence.js.map +1 -1
  241. package/dist/tasks/gate-runner.d.ts +5 -4
  242. package/dist/tasks/gate-runner.d.ts.map +1 -1
  243. package/dist/tasks/gate-runner.js +18 -11
  244. package/dist/tasks/gate-runner.js.map +1 -1
  245. package/dist/tasks/tool-cache.d.ts +27 -1
  246. package/dist/tasks/tool-cache.d.ts.map +1 -1
  247. package/dist/tasks/tool-cache.js +110 -6
  248. package/dist/tasks/tool-cache.js.map +1 -1
  249. package/dist/tools/fs.d.ts +3 -1
  250. package/dist/tools/fs.d.ts.map +1 -1
  251. package/dist/tools/fs.js +35 -2
  252. package/dist/tools/fs.js.map +1 -1
  253. package/dist/validation/engine-ops.d.ts +10 -3
  254. package/dist/validation/engine-ops.d.ts.map +1 -1
  255. package/dist/validation/engine-ops.js +17 -8
  256. package/dist/validation/engine-ops.js.map +1 -1
  257. package/migrations/drizzle-cleo-global/20261010180000_t12915-agent-registry-uids/migration.sql +18 -0
  258. package/migrations/drizzle-cleo-project/20261010170000_t12896b-brain-task-observations/migration.sql +37 -0
  259. package/migrations/sync-journal/20261009150000_t13335-capture-pin/migration.sql +13 -0
  260. package/package.json +18 -13
  261. package/schemas/config.schema.json +12 -0
  262. package/schemas/project-context.schema.json +5 -0
  263. package/templates/CLEO-INJECTION.md +2 -2
  264. package/templates/CLEO-REFERENCE.md +6 -4
  265. package/templates/git-hooks/pre-push +29 -1
  266. package/templates/workflows/release-prepare.yml.tmpl +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/store/sync/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/store/sync/capture.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,12 @@
16
16
  *
17
17
  * @module store/sync/collision-settle
18
18
  * @task T13397
19
+ * @task T13405
19
20
  */
20
21
  import type { DatabaseSync } from 'node:sqlite';
21
22
  import type { TableScope } from '@cleocode/contracts';
23
+ import { type CaptureTableDef } from './capture.js';
24
+ import { type StagedTxn } from './inbox.js';
22
25
  /** What {@link settleLostUidCollisions} needs. */
23
26
  export interface SettleOptions {
24
27
  readonly scope: TableScope;
@@ -44,6 +47,49 @@ export interface SettledCollision {
44
47
  * @returns The re-keys made.
45
48
  */
46
49
  export declare function settleLostUidCollisions(db: DatabaseSync, opts: SettleOptions): SettledCollision[];
50
+ /**
51
+ * Re-mint the counter key of every local row that lost a key collision and
52
+ * that this replica authored (T13405, T13431). Apply holds an incoming insert
53
+ * whose counter key (`T####`, `D###`, `SN-###`) a live row of another uid holds
54
+ * here (`key-collision`); the greater birth fingerprint loses, as for uids.
55
+ * Its origin gives it the next free key in a local `remint` frame, so the
56
+ * held insert places on the next pass and every receiver folds the rename
57
+ * into the insert it holds ({@link foldDisplayRemints}).
58
+ *
59
+ * Driven by the open conflicts, not by the uid re-key: a re-mint that fails
60
+ * (a kill, `SQLITE_BUSY`) leaves the conflict open, and the next apply re-mints
61
+ * it. A uid collision's K commits first, so receivers record its alias before
62
+ * they meet the rename.
63
+ *
64
+ * @param db - The store; must not be inside a transaction.
65
+ * @param opts - Scope, stream and this replica.
66
+ * @returns The re-mints made.
67
+ */
68
+ export declare function remintLostKeyCollisions(db: DatabaseSync, opts: SettleOptions): DisplayRemint[];
69
+ /** A decision re-mint this replica applied to a row it had placed (T13433). */
70
+ export interface DecisionKeyMove {
71
+ readonly uid: string;
72
+ readonly from: string;
73
+ readonly to: string;
74
+ }
75
+ /**
76
+ * Re-point this replica's own text references to decisions another origin
77
+ * re-minted after this replica had placed them (T13433): evidence atoms and
78
+ * page edges it wrote with `decision:<old>` meant the loser, while the old key
79
+ * now names the winner everywhere. A local `remint` frame, so the rewrite
80
+ * propagates; a move the apply rolled back (the row no longer has the new key)
81
+ * is skipped. The caller seals.
82
+ *
83
+ * shortcut: the moves are collected in memory during one apply call, so a crash
84
+ * between that apply's commit and this frame drops them; persist them if that
85
+ * window matters.
86
+ *
87
+ * @param db - The store; must not be inside a transaction.
88
+ * @param opts - Scope, stream and this replica.
89
+ * @param moves - Decision key moves applied in this call.
90
+ * @returns Rows rewritten.
91
+ */
92
+ export declare function repointOwnDecisionText(db: DatabaseSync, opts: SettleOptions, moves: readonly DecisionKeyMove[]): number;
47
93
  /**
48
94
  * Announce every re-key this replica applied to a loser it had placed
49
95
  * (T13399). The loser's origin draws the boundary for its own references with
@@ -59,4 +105,78 @@ export declare function settleLostUidCollisions(db: DatabaseSync, opts: SettleOp
59
105
  * @returns The announcements captured.
60
106
  */
61
107
  export declare function announcePlacedRekeys(db: DatabaseSync, opts: SettleOptions, nowIso: string): number;
108
+ /**
109
+ * The counter display-key column of `table`, or null when its key is not a
110
+ * counter (T13405).
111
+ *
112
+ * @param table - A sync-set table.
113
+ * @returns The key column, or null.
114
+ */
115
+ export declare function displayKeyColumn(table: string): string | null;
116
+ /** A re-mint the origin made. */
117
+ export interface DisplayRemint {
118
+ readonly table: string;
119
+ readonly uid: string;
120
+ readonly fromKey: string;
121
+ readonly toKey: string;
122
+ /** Rows rewritten per `table.column`, the row itself included. */
123
+ readonly rewritten: Readonly<Record<string, number>>;
124
+ }
125
+ /**
126
+ * ORIGIN ONLY: give the row (`table`, `uid`) a fresh counter key and point its
127
+ * local references at it. Call inside the caller's transaction and capture
128
+ * frame; it defers foreign keys for that transaction.
129
+ *
130
+ * @param db - The store.
131
+ * @param scope - Its scope.
132
+ * @param table - A table with a counter key ({@link displayKeyColumn}).
133
+ * @param uid - The losing row's (new) uid.
134
+ * @param birthFp - Its birth fingerprint.
135
+ * @param opts - The stream (for staged keys) and this replica (the alias origin).
136
+ * @returns The re-mint, or null when the row is gone.
137
+ */
138
+ export declare function remintDisplayKey(db: DatabaseSync, scope: TableScope, table: string, uid: string, birthFp: string, opts: {
139
+ readonly stream: string;
140
+ readonly origin: string;
141
+ }): DisplayRemint | null;
142
+ /**
143
+ * RECEIVER: fold an origin's re-mint into the insert it held (module doc).
144
+ * An insert of a counter-keyed row whose key a live row of another uid holds
145
+ * here takes the key of the LATEST later staged U by the same origin on the
146
+ * same row (uid and birth fingerprint) that sets it. Nothing else changes; the
147
+ * U still applies (and changes nothing). Pure over `staged`; reads the store.
148
+ *
149
+ * @param db - The store.
150
+ * @param staged - Staged transactions in stream order (aliases followed).
151
+ * @param defs - Capture definitions by table.
152
+ * @returns `staged`, with folded inserts replaced.
153
+ */
154
+ export declare function foldDisplayRemints(db: DatabaseSync, staged: readonly StagedTxn[], defs: (table: string) => CaptureTableDef | null): StagedTxn[];
155
+ /**
156
+ * Local columns that reference `table` by `keyColumn` (T13405): every
157
+ * sync-set table's declared reference to it, with that table's uid.
158
+ *
159
+ * @param db - The store.
160
+ * @param defs - Capture definitions by table.
161
+ * @param table - The re-keyed table.
162
+ * @param keyColumn - Its key column.
163
+ * @returns The referencing (table, column) pairs.
164
+ */
165
+ export declare function displayKeyReferrers(db: DatabaseSync, defs: (table: string) => CaptureTableDef | null, table: string, keyColumn: string): Array<{
166
+ readonly table: string;
167
+ readonly column: string;
168
+ }>;
169
+ /**
170
+ * Point the columns of tables OUTSIDE the sync set that hold a moved task id
171
+ * at its new id (T13405). They carry no capture and no uid (derived or
172
+ * local-only tables such as the acceptance projections), so the write API
173
+ * cannot reach them, and their foreign keys would otherwise fail at commit.
174
+ *
175
+ * @param db - The project store.
176
+ * @param defs - Capture definitions by table (null outside the sync set).
177
+ * @param fromId - The task's old display id.
178
+ * @param toId - Its new display id.
179
+ * @returns Rows rewritten per `table.column`.
180
+ */
181
+ export declare function followLocalTaskRefs(db: DatabaseSync, defs: (table: string) => CaptureTableDef | null, fromId: string, toId: string): Record<string, number>;
62
182
  //# sourceMappingURL=collision-settle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collision-settle.d.ts","sourceRoot":"","sources":["../../../src/store/sync/collision-settle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAetD,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AA0DD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,gBAAgB,EAAE,CAyCjG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAsBR"}
1
+ {"version":3,"file":"collision-settle.d.ts","sourceRoot":"","sources":["../../../src/store/sync/collision-settle.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,12 @@
16
16
  *
17
17
  * @module store/sync/collision-settle
18
18
  * @task T13397
19
+ * @task T13405
19
20
  */
20
- import { rekeyRowUid } from '../display-id-alias.js';
21
+ import { recordDisplayIdAlias, rekeyRowUid, taskReferenceColumns } from '../display-id-alias.js';
21
22
  import { mintRowUid } from '../row-identity.js';
22
23
  import { BIRTH_FP_COLUMN, rowIdentitySpec, UID_COLUMN } from '../row-identity-registry.js';
23
- import { setRowUidNative } from '../sqlite-data-accessor.js';
24
+ import { advanceTaskIdSequence, renameBrainDisplayKeyNative, renameTaskDisplayIdNative, repointDecisionReferencesNative, rewriteTaskIdReferencesNative, setRowUidNative, } from '../sqlite-data-accessor.js';
24
25
  import { captureRekeyAnnouncement, captureTableDef, finishCaptureFrame, openCaptureFrame, } from './capture.js';
25
26
  import { stagedTxns } from './inbox.js';
26
27
  import { hasTable } from './schema.js';
@@ -38,9 +39,9 @@ function lostCollisions(db, stream) {
38
39
  const staged = stagedTxns(db, stream);
39
40
  for (const c of open) {
40
41
  const st = staged.find((s) => s.key.seq === c.seq && s.key.txnIdx === c.txnIdx);
41
- const fp = st?.txn.ops[c.opIdx]?.bfp;
42
- if (fp)
43
- out.set(`${c.tbl}\u0000${c.uid}`, { table: c.tbl, uid: c.uid, incomingFp: fp });
42
+ const op = st?.txn.ops[c.opIdx];
43
+ if (op?.bfp)
44
+ out.set(`${c.tbl}\u0000${c.uid}`, { table: c.tbl, uid: c.uid, incomingFp: op.bfp });
44
45
  }
45
46
  return out;
46
47
  }
@@ -63,6 +64,25 @@ function authoredHere(db, table, uid, fp, replica) {
63
64
  AND json_extract(o.body, '$.bfp') = ? LIMIT 1`)
64
65
  .get(table, uid, replica, fp) !== undefined);
65
66
  }
67
+ /**
68
+ * Whether this replica sealed the insert of a `table` row born with `fp`,
69
+ * under any uid (T13431): a re-keyed loser keeps its birth fingerprint, not
70
+ * its uid.
71
+ */
72
+ function authoredFpHere(db, table, fp, replica) {
73
+ if (hasTable(db, '_sync_authored') &&
74
+ db
75
+ .prepare('SELECT 1 FROM _sync_authored WHERE tbl = ? AND bfp = ? AND replica = ?')
76
+ .get(table, fp, replica) !== undefined) {
77
+ return true;
78
+ }
79
+ return (hasTable(db, '_sync_op') &&
80
+ db
81
+ .prepare(`SELECT 1 FROM _sync_op o JOIN _sync_txn t ON t.txn = o.txn
82
+ WHERE o.tbl = ? AND o.o = 'I' AND t.replica = ?
83
+ AND json_extract(o.body, '$.bfp') = ? LIMIT 1`)
84
+ .get(table, replica, fp) !== undefined);
85
+ }
66
86
  /**
67
87
  * Re-key every row this replica lost a uid collision with and authored
68
88
  * (module doc). Each re-key is its own local transaction in a `rekey` frame;
@@ -112,6 +132,111 @@ export function settleLostUidCollisions(db, opts) {
112
132
  }
113
133
  return settled;
114
134
  }
135
+ /**
136
+ * Re-mint the counter key of every local row that lost a key collision and
137
+ * that this replica authored (T13405, T13431). Apply holds an incoming insert
138
+ * whose counter key (`T####`, `D###`, `SN-###`) a live row of another uid holds
139
+ * here (`key-collision`); the greater birth fingerprint loses, as for uids.
140
+ * Its origin gives it the next free key in a local `remint` frame, so the
141
+ * held insert places on the next pass and every receiver folds the rename
142
+ * into the insert it holds ({@link foldDisplayRemints}).
143
+ *
144
+ * Driven by the open conflicts, not by the uid re-key: a re-mint that fails
145
+ * (a kill, `SQLITE_BUSY`) leaves the conflict open, and the next apply re-mints
146
+ * it. A uid collision's K commits first, so receivers record its alias before
147
+ * they meet the rename.
148
+ *
149
+ * @param db - The store; must not be inside a transaction.
150
+ * @param opts - Scope, stream and this replica.
151
+ * @returns The re-mints made.
152
+ */
153
+ export function remintLostKeyCollisions(db, opts) {
154
+ if (!hasTable(db, '_sync_conflict'))
155
+ return [];
156
+ const open = db
157
+ .prepare(`SELECT seq, txn_idx AS txnIdx, op_idx AS opIdx, tbl FROM _sync_conflict
158
+ WHERE stream = ? AND kind = 'key-collision' AND resolved_at IS NULL`)
159
+ .all(opts.stream);
160
+ const out = [];
161
+ const staged = open.length > 0 ? stagedTxns(db, opts.stream) : [];
162
+ for (const c of open) {
163
+ const col = displayKeyColumn(c.tbl);
164
+ if (!col)
165
+ continue;
166
+ const op = staged.find((s) => s.key.seq === c.seq && s.key.txnIdx === c.txnIdx)?.txn.ops[c.opIdx];
167
+ const key = op?.a?.[col];
168
+ if (!op?.bfp || typeof key !== 'string')
169
+ continue;
170
+ const holder = db
171
+ .prepare(`SELECT ${q(UID_COLUMN)} AS uid, ${q(BIRTH_FP_COLUMN)} AS fp FROM main.${q(c.tbl)} WHERE ${q(col)} = ?`)
172
+ .get(key);
173
+ // Only the loser (the greater fingerprint) moves, and only by its origin.
174
+ if (!holder?.uid || !holder.fp || holder.uid === op.u || !(op.bfp < holder.fp))
175
+ continue;
176
+ if (!authoredFpHere(db, c.tbl, holder.fp, opts.replica))
177
+ continue;
178
+ db.exec('BEGIN IMMEDIATE');
179
+ try {
180
+ const frame = openCaptureFrame(db, 'remint', null);
181
+ const remint = remintDisplayKey(db, opts.scope, c.tbl, holder.uid, holder.fp, {
182
+ stream: opts.stream,
183
+ origin: opts.replica,
184
+ });
185
+ finishCaptureFrame(db, frame);
186
+ db.exec('COMMIT');
187
+ if (remint)
188
+ out.push(remint);
189
+ }
190
+ catch (err) {
191
+ if (db.isTransaction)
192
+ db.exec('ROLLBACK');
193
+ throw err;
194
+ }
195
+ }
196
+ return out;
197
+ }
198
+ /**
199
+ * Re-point this replica's own text references to decisions another origin
200
+ * re-minted after this replica had placed them (T13433): evidence atoms and
201
+ * page edges it wrote with `decision:<old>` meant the loser, while the old key
202
+ * now names the winner everywhere. A local `remint` frame, so the rewrite
203
+ * propagates; a move the apply rolled back (the row no longer has the new key)
204
+ * is skipped. The caller seals.
205
+ *
206
+ * shortcut: the moves are collected in memory during one apply call, so a crash
207
+ * between that apply's commit and this frame drops them; persist them if that
208
+ * window matters.
209
+ *
210
+ * @param db - The store; must not be inside a transaction.
211
+ * @param opts - Scope, stream and this replica.
212
+ * @param moves - Decision key moves applied in this call.
213
+ * @returns Rows rewritten.
214
+ */
215
+ export function repointOwnDecisionText(db, opts, moves) {
216
+ let n = 0;
217
+ for (const m of moves) {
218
+ const live = db
219
+ .prepare(`SELECT id FROM main.brain_decisions WHERE ${q(UID_COLUMN)} = ?`)
220
+ .get(m.uid);
221
+ if (live?.id !== m.to)
222
+ continue;
223
+ db.exec('BEGIN IMMEDIATE');
224
+ try {
225
+ const frame = openCaptureFrame(db, 'remint', null);
226
+ for (const k of Object.values(repointDecisionReferencesNative(db, m.from, m.to, opts.replica))) {
227
+ n += k;
228
+ }
229
+ finishCaptureFrame(db, frame);
230
+ db.exec('COMMIT');
231
+ }
232
+ catch (err) {
233
+ if (db.isTransaction)
234
+ db.exec('ROLLBACK');
235
+ throw err;
236
+ }
237
+ }
238
+ return n;
239
+ }
115
240
  /**
116
241
  * Announce every re-key this replica applied to a loser it had placed
117
242
  * (T13399). The loser's origin draws the boundary for its own references with
@@ -153,4 +278,216 @@ export function announcePlacedRekeys(db, opts, nowIso) {
153
278
  }
154
279
  return n;
155
280
  }
281
+ /** Tables whose key the origin re-mints (T13405). */
282
+ const DISPLAY_KEYS = {
283
+ tasks_tasks: { column: 'id', prefix: 'T', width: 3 },
284
+ brain_decisions: { column: 'id', prefix: 'D', width: 3 },
285
+ brain_sticky_notes: { column: 'id', prefix: 'SN-', width: 3 },
286
+ };
287
+ /**
288
+ * The counter display-key column of `table`, or null when its key is not a
289
+ * counter (T13405).
290
+ *
291
+ * @param table - A sync-set table.
292
+ * @returns The key column, or null.
293
+ */
294
+ export function displayKeyColumn(table) {
295
+ return DISPLAY_KEYS[table]?.column ?? null;
296
+ }
297
+ /**
298
+ * The local key column a held insert of `table` may take from its origin's
299
+ * later rename (T13432): the counter keys, plus a decision's `decision:<id>`
300
+ * page node, which the decision re-mint renames with it.
301
+ */
302
+ function foldKeyColumn(table) {
303
+ return table === 'brain_page_nodes' ? 'id' : displayKeyColumn(table);
304
+ }
305
+ /** The counter value of `key` under `spec`, or 0 when it is not one. */
306
+ function counterOf(spec, key) {
307
+ if (typeof key !== 'string' || !key.startsWith(spec.prefix))
308
+ return 0;
309
+ const digits = key.slice(spec.prefix.length);
310
+ return /^[0-9]+$/.test(digits) ? Number(digits) : 0;
311
+ }
312
+ /**
313
+ * The next counter key of `table` above every key it holds and every key a
314
+ * staged transaction would write, so the re-mint never lands on a row that is
315
+ * still held in the inbox.
316
+ */
317
+ function allocateDisplayKey(db, table, stream) {
318
+ const spec = DISPLAY_KEYS[table];
319
+ // @sync-invariant none:input-shape callers pass only tables from DISPLAY_KEYS
320
+ if (!spec)
321
+ throw new Error(`display key: ${table} has no counter key`);
322
+ const col = `"${spec.column}"`;
323
+ let floor = 0;
324
+ for (const r of db
325
+ .prepare(`SELECT ${col} AS k FROM main."${table}" WHERE substr(${col}, 1, ?) = ?`)
326
+ .all(spec.prefix.length, spec.prefix)) {
327
+ floor = Math.max(floor, counterOf(spec, r.k));
328
+ }
329
+ for (const st of stagedTxns(db, stream)) {
330
+ for (const op of st.txn.ops) {
331
+ if (op.t === table && op.a)
332
+ floor = Math.max(floor, counterOf(spec, op.a[spec.column]));
333
+ }
334
+ }
335
+ const next = table === 'tasks_tasks' ? (advanceTaskIdSequence(db, floor) ?? floor + 1) : floor + 1;
336
+ return `${spec.prefix}${String(next).padStart(spec.width, '0')}`;
337
+ }
338
+ /**
339
+ * Every column holding a task display id that a re-mint must rewrite: the
340
+ * declared references, plus `brain_task_observations.task_id`, which holds a
341
+ * task id without a declaration on stores where that table is not synced
342
+ * (T13433; #2034 declares it, and the Map key keeps one entry).
343
+ */
344
+ function taskKeyColumns(db) {
345
+ const cols = taskReferenceColumns(db);
346
+ const has = hasTable(db, 'brain_task_observations') &&
347
+ !cols.some((c) => c.table === 'brain_task_observations' && c.column === 'task_id');
348
+ return has
349
+ ? [...cols, { table: 'brain_task_observations', column: 'task_id', jsonArray: false }]
350
+ : cols;
351
+ }
352
+ /**
353
+ * ORIGIN ONLY: give the row (`table`, `uid`) a fresh counter key and point its
354
+ * local references at it. Call inside the caller's transaction and capture
355
+ * frame; it defers foreign keys for that transaction.
356
+ *
357
+ * @param db - The store.
358
+ * @param scope - Its scope.
359
+ * @param table - A table with a counter key ({@link displayKeyColumn}).
360
+ * @param uid - The losing row's (new) uid.
361
+ * @param birthFp - Its birth fingerprint.
362
+ * @param opts - The stream (for staged keys) and this replica (the alias origin).
363
+ * @returns The re-mint, or null when the row is gone.
364
+ */
365
+ export function remintDisplayKey(db, scope, table, uid, birthFp, opts) {
366
+ const spec = DISPLAY_KEYS[table];
367
+ if (!spec)
368
+ return null;
369
+ const row = db
370
+ .prepare(`SELECT "${spec.column}" AS k FROM main."${table}" WHERE "${UID_COLUMN}" = ?`)
371
+ .get(uid);
372
+ if (!row?.k)
373
+ return null;
374
+ const fromKey = row.k;
375
+ const toKey = allocateDisplayKey(db, table, opts.stream);
376
+ db.exec('PRAGMA defer_foreign_keys = ON');
377
+ let rewritten;
378
+ if (table === 'tasks_tasks') {
379
+ rewritten = {
380
+ 'tasks_tasks.id': 1,
381
+ ...renameTaskDisplayIdNative(db, uid, toKey, taskKeyColumns(db)).rewritten,
382
+ };
383
+ }
384
+ else {
385
+ rewritten = renameBrainDisplayKeyNative(db, table, uid, fromKey, toKey);
386
+ if (table === 'brain_decisions') {
387
+ for (const [k, n] of Object.entries(repointDecisionReferencesNative(db, fromKey, toKey, opts.origin, true))) {
388
+ rewritten[k] = (rewritten[k] ?? 0) + n;
389
+ }
390
+ }
391
+ }
392
+ // The portable display alias lets `T0001` still resolve (project store only).
393
+ if (scope === 'project' && hasTable(db, 'tasks_display_id_aliases')) {
394
+ recordDisplayIdAlias(db, {
395
+ table,
396
+ displayId: fromKey,
397
+ entityUid: uid,
398
+ entityBirthFp: birthFp,
399
+ reason: 'collision-remint',
400
+ origin: opts.origin,
401
+ });
402
+ }
403
+ return { table, uid, fromKey, toKey, rewritten };
404
+ }
405
+ /**
406
+ * RECEIVER: fold an origin's re-mint into the insert it held (module doc).
407
+ * An insert of a counter-keyed row whose key a live row of another uid holds
408
+ * here takes the key of the LATEST later staged U by the same origin on the
409
+ * same row (uid and birth fingerprint) that sets it. Nothing else changes; the
410
+ * U still applies (and changes nothing). Pure over `staged`; reads the store.
411
+ *
412
+ * @param db - The store.
413
+ * @param staged - Staged transactions in stream order (aliases followed).
414
+ * @param defs - Capture definitions by table.
415
+ * @returns `staged`, with folded inserts replaced.
416
+ */
417
+ export function foldDisplayRemints(db, staged, defs) {
418
+ const out = [...staged];
419
+ for (const [i, st] of staged.entries()) {
420
+ let ops = null;
421
+ for (const [j, op] of st.txn.ops.entries()) {
422
+ const col = op.o === 'I' ? foldKeyColumn(op.t) : null;
423
+ const key = col ? op.a?.[col] : undefined;
424
+ if (!col || typeof key !== 'string' || !defs(op.t))
425
+ continue;
426
+ const holder = db
427
+ .prepare(`SELECT "${UID_COLUMN}" AS uid FROM main."${op.t}" WHERE "${col}" = ?`)
428
+ .get(key);
429
+ if (!holder || holder.uid === op.u)
430
+ continue;
431
+ let renamed = null;
432
+ for (const later of staged.slice(i + 1)) {
433
+ if (later.replicaId !== st.replicaId)
434
+ continue;
435
+ for (const u of later.txn.ops) {
436
+ const v = u.o === 'U' && u.t === op.t && u.u === op.u ? u.a?.[col] : undefined;
437
+ if (typeof v === 'string' && (!u.bfp || !op.bfp || u.bfp === op.bfp))
438
+ renamed = v;
439
+ }
440
+ }
441
+ if (renamed === null || renamed === key)
442
+ continue;
443
+ ops ??= [...st.txn.ops];
444
+ ops[j] = { ...op, a: { ...op.a, [col]: renamed } };
445
+ }
446
+ if (ops)
447
+ out[i] = { ...st, txn: { ...st.txn, ops } };
448
+ }
449
+ return out;
450
+ }
451
+ /**
452
+ * Local columns that reference `table` by `keyColumn` (T13405): every
453
+ * sync-set table's declared reference to it, with that table's uid.
454
+ *
455
+ * @param db - The store.
456
+ * @param defs - Capture definitions by table.
457
+ * @param table - The re-keyed table.
458
+ * @param keyColumn - Its key column.
459
+ * @returns The referencing (table, column) pairs.
460
+ */
461
+ export function displayKeyReferrers(db, defs, table, keyColumn) {
462
+ const out = [];
463
+ const tables = db
464
+ .prepare("SELECT name FROM main.sqlite_master WHERE type = 'table' ORDER BY name")
465
+ .all();
466
+ for (const { name } of tables) {
467
+ const def = defs(name);
468
+ if (!def)
469
+ continue;
470
+ for (const [column, target] of def.refs) {
471
+ if (target.table === table && target.key === keyColumn)
472
+ out.push({ table: name, column });
473
+ }
474
+ }
475
+ return out;
476
+ }
477
+ /**
478
+ * Point the columns of tables OUTSIDE the sync set that hold a moved task id
479
+ * at its new id (T13405). They carry no capture and no uid (derived or
480
+ * local-only tables such as the acceptance projections), so the write API
481
+ * cannot reach them, and their foreign keys would otherwise fail at commit.
482
+ *
483
+ * @param db - The project store.
484
+ * @param defs - Capture definitions by table (null outside the sync set).
485
+ * @param fromId - The task's old display id.
486
+ * @param toId - Its new display id.
487
+ * @returns Rows rewritten per `table.column`.
488
+ */
489
+ export function followLocalTaskRefs(db, defs, fromId, toId) {
490
+ const local = taskKeyColumns(db).filter((r) => defs(r.table) === null);
491
+ return local.length > 0 ? rewriteTaskIdReferencesNative(db, local, fromId, toId) : {};
492
+ }
156
493
  //# sourceMappingURL=collision-settle.js.map