@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.
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/auto-sync-command-entry.d.ts +13 -0
- package/dist/cloud/auto-sync-command-entry.d.ts.map +1 -0
- package/dist/cloud/auto-sync-command-entry.js +18 -0
- package/dist/cloud/auto-sync-command-entry.js.map +1 -0
- package/dist/cloud/auto-sync-command.d.ts +64 -0
- package/dist/cloud/auto-sync-command.d.ts.map +1 -0
- package/dist/cloud/auto-sync-command.js +109 -0
- package/dist/cloud/auto-sync-command.js.map +1 -0
- package/dist/cloud/auto-sync.d.ts +111 -0
- package/dist/cloud/auto-sync.d.ts.map +1 -0
- package/dist/cloud/auto-sync.js +275 -0
- package/dist/cloud/auto-sync.js.map +1 -0
- package/dist/cloud/nexus-cloud-device-overview.d.ts +52 -0
- package/dist/cloud/nexus-cloud-device-overview.d.ts.map +1 -0
- package/dist/cloud/nexus-cloud-device-overview.js +105 -0
- package/dist/cloud/nexus-cloud-device-overview.js.map +1 -0
- package/dist/cloud/nexus-cloud-journal-activity.d.ts +56 -0
- package/dist/cloud/nexus-cloud-journal-activity.d.ts.map +1 -0
- package/dist/cloud/nexus-cloud-journal-activity.js +98 -0
- package/dist/cloud/nexus-cloud-journal-activity.js.map +1 -0
- package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
- package/dist/cloud/nexus-cloud-status.js +88 -5
- package/dist/cloud/nexus-cloud-status.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts +19 -5
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +376 -71
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/cloud/replica-rebind.d.ts +14 -0
- package/dist/cloud/replica-rebind.d.ts.map +1 -1
- package/dist/cloud/replica-rebind.js +20 -1
- package/dist/cloud/replica-rebind.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/docs/docs-ops.d.ts +4 -2
- package/dist/docs/docs-ops.d.ts.map +1 -1
- package/dist/docs/docs-ops.js +107 -15
- package/dist/docs/docs-ops.js.map +1 -1
- package/dist/doctor/system-health.d.ts +76 -2
- package/dist/doctor/system-health.d.ts.map +1 -1
- package/dist/doctor/system-health.js +264 -41
- package/dist/doctor/system-health.js.map +1 -1
- package/dist/hooks/project-runner.d.ts +10 -0
- package/dist/hooks/project-runner.d.ts.map +1 -0
- package/dist/hooks/project-runner.js +328 -0
- package/dist/hooks/project-runner.js.map +1 -0
- package/dist/hooks/project-state.d.ts +41 -0
- package/dist/hooks/project-state.d.ts.map +1 -0
- package/dist/hooks/project-state.js +331 -0
- package/dist/hooks/project-state.js.map +1 -0
- package/dist/hooks/release-gate.d.ts +61 -0
- package/dist/hooks/release-gate.d.ts.map +1 -0
- package/dist/hooks/release-gate.js +70 -0
- package/dist/hooks/release-gate.js.map +1 -0
- package/dist/nexus/analyze-orchestrator.d.ts +2 -0
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +1 -0
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/freshness.d.ts +67 -3
- package/dist/nexus/freshness.d.ts.map +1 -1
- package/dist/nexus/freshness.js +130 -9
- package/dist/nexus/freshness.js.map +1 -1
- package/dist/nexus/refresh-child.d.ts +14 -0
- package/dist/nexus/refresh-child.d.ts.map +1 -0
- package/dist/nexus/refresh-child.js +24 -0
- package/dist/nexus/refresh-child.js.map +1 -0
- package/dist/orchestrate/spawn-ops.d.ts +8 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +42 -12
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/spawn.d.ts +5 -0
- package/dist/orchestration/spawn.d.ts.map +1 -1
- package/dist/orchestration/spawn.js +4 -1
- package/dist/orchestration/spawn.js.map +1 -1
- package/dist/release/channel.d.ts.map +1 -1
- package/dist/release/channel.js +10 -0
- package/dist/release/channel.js.map +1 -1
- package/dist/release/github-pr.d.ts.map +1 -1
- package/dist/release/github-pr.js +1 -0
- package/dist/release/github-pr.js.map +1 -1
- package/dist/release/plan.d.ts +8 -3
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +72 -15
- package/dist/release/plan.js.map +1 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +6 -15
- package/dist/release/reconcile.js.map +1 -1
- package/dist/sentient/daemon-entry.d.ts +6 -0
- package/dist/sentient/daemon-entry.d.ts.map +1 -1
- package/dist/sentient/daemon-entry.js +12 -0
- package/dist/sentient/daemon-entry.js.map +1 -1
- package/dist/sentient/worktree-dispatch.d.ts +7 -0
- package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
- package/dist/sentient/worktree-dispatch.js +37 -1
- package/dist/sentient/worktree-dispatch.js.map +1 -1
- package/dist/sessions/session-end-snapshot-entry.d.ts +4 -1
- package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -1
- package/dist/sessions/session-end-snapshot-entry.js +9 -1
- package/dist/sessions/session-end-snapshot-entry.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +96 -1
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/branch-lock.d.ts +27 -8
- package/dist/spawn/branch-lock.d.ts.map +1 -1
- package/dist/spawn/branch-lock.js +57 -73
- package/dist/spawn/branch-lock.js.map +1 -1
- package/dist/store/agent-resolver.d.ts +6 -0
- package/dist/store/agent-resolver.d.ts.map +1 -1
- package/dist/store/agent-resolver.js +2 -0
- package/dist/store/agent-resolver.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +20 -0
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +81 -8
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/bare-family.d.ts.map +1 -1
- package/dist/store/exodus/bare-family.js +4 -1
- package/dist/store/exodus/bare-family.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +2 -0
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +16 -4
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/reconcile.d.ts.map +1 -1
- package/dist/store/exodus/reconcile.js +2 -0
- package/dist/store/exodus/reconcile.js.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +17 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +46 -31
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +5 -0
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/row-identity-registry.d.ts +4 -3
- package/dist/store/row-identity-registry.d.ts.map +1 -1
- package/dist/store/row-identity-registry.js +37 -35
- package/dist/store/row-identity-registry.js.map +1 -1
- package/dist/store/row-identity.d.ts.map +1 -1
- package/dist/store/row-identity.js +6 -1
- package/dist/store/row-identity.js.map +1 -1
- package/dist/store/schema/cleo-global/agent-registry.d.ts +16 -0
- package/dist/store/schema/cleo-global/agent-registry.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/agent-registry.js +4 -1
- package/dist/store/schema/cleo-global/agent-registry.js.map +1 -1
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts +126 -1
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/provenance-orphans.js +41 -1
- package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts +40 -0
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +122 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sync/activity.d.ts +64 -0
- package/dist/store/sync/activity.d.ts.map +1 -0
- package/dist/store/sync/activity.js +220 -0
- package/dist/store/sync/activity.js.map +1 -0
- package/dist/store/sync/apply/applier.d.ts.map +1 -1
- package/dist/store/sync/apply/applier.js +58 -2
- package/dist/store/sync/apply/applier.js.map +1 -1
- package/dist/store/sync/apply/write-api.d.ts.map +1 -1
- package/dist/store/sync/apply/write-api.js +45 -3
- package/dist/store/sync/apply/write-api.js.map +1 -1
- package/dist/store/sync/capture.d.ts +6 -4
- package/dist/store/sync/capture.d.ts.map +1 -1
- package/dist/store/sync/capture.js +16 -4
- package/dist/store/sync/capture.js.map +1 -1
- package/dist/store/sync/collision-settle.d.ts +120 -0
- package/dist/store/sync/collision-settle.d.ts.map +1 -1
- package/dist/store/sync/collision-settle.js +342 -5
- package/dist/store/sync/collision-settle.js.map +1 -1
- package/dist/store/sync/flags.d.ts +34 -0
- package/dist/store/sync/flags.d.ts.map +1 -1
- package/dist/store/sync/flags.js +46 -0
- package/dist/store/sync/flags.js.map +1 -1
- package/dist/store/sync/genesis.d.ts +8 -0
- package/dist/store/sync/genesis.d.ts.map +1 -1
- package/dist/store/sync/genesis.js +18 -5
- package/dist/store/sync/genesis.js.map +1 -1
- package/dist/store/sync/push.d.ts +4 -2
- package/dist/store/sync/push.d.ts.map +1 -1
- package/dist/store/sync/push.js +10 -1
- package/dist/store/sync/push.js.map +1 -1
- package/dist/store/sync/rebind.d.ts +20 -0
- package/dist/store/sync/rebind.d.ts.map +1 -1
- package/dist/store/sync/rebind.js +86 -4
- package/dist/store/sync/rebind.js.map +1 -1
- package/dist/store/sync/reconcile-copy.d.ts +152 -0
- package/dist/store/sync/reconcile-copy.d.ts.map +1 -0
- package/dist/store/sync/reconcile-copy.js +428 -0
- package/dist/store/sync/reconcile-copy.js.map +1 -0
- package/dist/store/sync/reconcile.d.ts +80 -0
- package/dist/store/sync/reconcile.d.ts.map +1 -1
- package/dist/store/sync/reconcile.js +97 -5
- package/dist/store/sync/reconcile.js.map +1 -1
- package/dist/store/sync/repair.d.ts +11 -0
- package/dist/store/sync/repair.d.ts.map +1 -1
- package/dist/store/sync/repair.js +14 -3
- package/dist/store/sync/repair.js.map +1 -1
- package/dist/store/sync/replica.d.ts +74 -1
- package/dist/store/sync/replica.d.ts.map +1 -1
- package/dist/store/sync/replica.js +104 -6
- package/dist/store/sync/replica.js.map +1 -1
- package/dist/store/sync/row-meta.d.ts +4 -2
- package/dist/store/sync/row-meta.d.ts.map +1 -1
- package/dist/store/sync/row-meta.js +6 -4
- package/dist/store/sync/row-meta.js.map +1 -1
- package/dist/store/sync/sealer.d.ts +2 -0
- package/dist/store/sync/sealer.d.ts.map +1 -1
- package/dist/store/sync/sealer.js +33 -4
- package/dist/store/sync/sealer.js.map +1 -1
- package/dist/store/sync/structural.d.ts.map +1 -1
- package/dist/store/sync/structural.js +3 -1
- package/dist/store/sync/structural.js.map +1 -1
- package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
- package/dist/store/sync/timestamp-canon.js +2 -0
- package/dist/store/sync/timestamp-canon.js.map +1 -1
- package/dist/store/table-classification.d.ts +29 -0
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +85 -19
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +28 -10
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/vault-manifest.d.ts +5 -0
- package/dist/store/vault-manifest.d.ts.map +1 -1
- package/dist/store/vault-manifest.js +14 -1
- package/dist/store/vault-manifest.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +15 -5
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +20 -8
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/done-record.d.ts +14 -4
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +21 -9
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +45 -4
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +5 -4
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +18 -11
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/tool-cache.d.ts +27 -1
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +110 -6
- package/dist/tasks/tool-cache.js.map +1 -1
- package/dist/tools/fs.d.ts +3 -1
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/fs.js +35 -2
- package/dist/tools/fs.js.map +1 -1
- package/dist/validation/engine-ops.d.ts +10 -3
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +17 -8
- package/dist/validation/engine-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20261010180000_t12915-agent-registry-uids/migration.sql +18 -0
- package/migrations/drizzle-cleo-project/20261010170000_t12896b-brain-task-observations/migration.sql +37 -0
- package/migrations/sync-journal/20261009150000_t13335-capture-pin/migration.sql +13 -0
- package/package.json +18 -13
- package/schemas/config.schema.json +12 -0
- package/schemas/project-context.schema.json +5 -0
- package/templates/CLEO-INJECTION.md +2 -2
- package/templates/CLEO-REFERENCE.md +6 -4
- package/templates/git-hooks/pre-push +29 -1
- 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
|
|
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
|
|
42
|
-
if (
|
|
43
|
-
out.set(`${c.tbl}\u0000${c.uid}`, { table: c.tbl, uid: c.uid, incomingFp:
|
|
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
|