@cleocode/core 2026.10.5 → 2026.10.6-rc.ci.673
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/bootstrap.d.ts +13 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +21 -32
- package/dist/bootstrap.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
- package/dist/cloud/nexus-cloud-status.js +3 -1
- package/dist/cloud/nexus-cloud-status.js.map +1 -1
- package/dist/cloud/nexus-device.d.ts +1 -1
- package/dist/cloud/nexus-presence-refresh.d.ts.map +1 -1
- package/dist/cloud/nexus-presence-refresh.js +20 -13
- package/dist/cloud/nexus-presence-refresh.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +4 -1
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/docs/derive-links.d.ts +69 -0
- package/dist/docs/derive-links.d.ts.map +1 -0
- package/dist/docs/derive-links.js +85 -0
- package/dist/docs/derive-links.js.map +1 -0
- package/dist/docs/docs-generator.d.ts.map +1 -1
- package/dist/docs/docs-generator.js +2 -0
- package/dist/docs/docs-generator.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +24 -4
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/fetch-result.d.ts +77 -0
- package/dist/docs/fetch-result.d.ts.map +1 -0
- package/dist/docs/fetch-result.js +132 -0
- package/dist/docs/fetch-result.js.map +1 -0
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +9 -0
- package/dist/docs/supersede.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +64 -29
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/row-identity-refill.d.ts.map +1 -1
- package/dist/doctor/row-identity-refill.js +25 -10
- package/dist/doctor/row-identity-refill.js.map +1 -1
- package/dist/doctor/row-identity.d.ts.map +1 -1
- package/dist/doctor/row-identity.js +8 -2
- package/dist/doctor/row-identity.js.map +1 -1
- package/dist/doctor/sync-repair.d.ts +5 -0
- package/dist/doctor/sync-repair.d.ts.map +1 -1
- package/dist/doctor/sync-repair.js +11 -0
- package/dist/doctor/sync-repair.js.map +1 -1
- package/dist/doctor/sync-triggers.d.ts.map +1 -1
- package/dist/doctor/sync-triggers.js +3 -17
- package/dist/doctor/sync-triggers.js.map +1 -1
- package/dist/hygiene/validate-spawn-readiness.d.ts +6 -1
- package/dist/hygiene/validate-spawn-readiness.d.ts.map +1 -1
- package/dist/hygiene/validate-spawn-readiness.js +11 -6
- package/dist/hygiene/validate-spawn-readiness.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +10 -1
- package/dist/init.js.map +1 -1
- package/dist/injection.d.ts +37 -12
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +152 -35
- package/dist/injection.js.map +1 -1
- package/dist/memory/brain-search.d.ts.map +1 -1
- package/dist/memory/brain-search.js +7 -32
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.d.ts +2 -0
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +51 -9
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/nexus/assessment-projection.d.ts +96 -1
- package/dist/nexus/assessment-projection.d.ts.map +1 -1
- package/dist/nexus/assessment-projection.js +135 -0
- package/dist/nexus/assessment-projection.js.map +1 -1
- package/dist/nexus/assessment-store.d.ts +54 -0
- package/dist/nexus/assessment-store.d.ts.map +1 -1
- package/dist/nexus/assessment-store.js +161 -2
- package/dist/nexus/assessment-store.js.map +1 -1
- package/dist/nexus/knowledge.d.ts +19 -0
- package/dist/nexus/knowledge.d.ts.map +1 -1
- package/dist/nexus/knowledge.js +56 -2
- package/dist/nexus/knowledge.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +12 -1
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/release/commit-presence.d.ts +24 -0
- package/dist/release/commit-presence.d.ts.map +1 -1
- package/dist/release/commit-presence.js +31 -0
- package/dist/release/commit-presence.js.map +1 -1
- package/dist/release/plan.d.ts +8 -6
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +11 -6
- package/dist/release/plan.js.map +1 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +10 -8
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/verify-provenance.d.ts.map +1 -1
- package/dist/release/verify-provenance.js +6 -8
- package/dist/release/verify-provenance.js.map +1 -1
- package/dist/resources/admission-ledger.d.ts +66 -0
- package/dist/resources/admission-ledger.d.ts.map +1 -1
- package/dist/resources/admission-ledger.js +145 -6
- package/dist/resources/admission-ledger.js.map +1 -1
- package/dist/resources/run-class.d.ts +71 -0
- package/dist/resources/run-class.d.ts.map +1 -1
- package/dist/resources/run-class.js +203 -0
- package/dist/resources/run-class.js.map +1 -1
- package/dist/resources/run-governed.d.ts +2 -0
- package/dist/resources/run-governed.d.ts.map +1 -1
- package/dist/resources/run-governed.js +1 -0
- package/dist/resources/run-governed.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +20 -9
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +56 -23
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/ensure-skills.d.ts +10 -0
- package/dist/scaffold/ensure-skills.d.ts.map +1 -1
- package/dist/scaffold/ensure-skills.js +47 -3
- package/dist/scaffold/ensure-skills.js.map +1 -1
- package/dist/scaffold/upgrade-file-journal.d.ts +79 -0
- package/dist/scaffold/upgrade-file-journal.d.ts.map +1 -0
- package/dist/scaffold/upgrade-file-journal.js +111 -0
- package/dist/scaffold/upgrade-file-journal.js.map +1 -0
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +10 -2
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +3 -0
- package/dist/sessions/index.js.map +1 -1
- package/dist/spawn/worktree-lock-holder.d.ts +59 -1
- package/dist/spawn/worktree-lock-holder.d.ts.map +1 -1
- package/dist/spawn/worktree-lock-holder.js +114 -0
- package/dist/spawn/worktree-lock-holder.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +38 -0
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-recover.d.ts +4 -4
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +11 -4
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +19 -1
- package/dist/store/backup-sidecar.d.ts.map +1 -1
- package/dist/store/backup-sidecar.js +57 -6
- package/dist/store/backup-sidecar.js.map +1 -1
- package/dist/store/db-helpers.js +1 -1
- package/dist/store/display-id-alias.js +1 -1
- package/dist/store/display-id-alias.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +2 -0
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +28 -16
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/archive.d.ts +42 -2
- package/dist/store/exodus/archive.d.ts.map +1 -1
- package/dist/store/exodus/archive.js +81 -4
- package/dist/store/exodus/archive.js.map +1 -1
- package/dist/store/exodus/bare-family.d.ts +104 -0
- package/dist/store/exodus/bare-family.d.ts.map +1 -0
- package/dist/store/exodus/bare-family.js +470 -0
- package/dist/store/exodus/bare-family.js.map +1 -0
- package/dist/store/exodus/column-transforms.d.ts.map +1 -1
- package/dist/store/exodus/column-transforms.js +15 -8
- package/dist/store/exodus/column-transforms.js.map +1 -1
- package/dist/store/exodus/health.d.ts +2 -0
- package/dist/store/exodus/health.d.ts.map +1 -1
- package/dist/store/exodus/health.js +7 -1
- package/dist/store/exodus/health.js.map +1 -1
- package/dist/store/exodus/index.d.ts +2 -2
- package/dist/store/exodus/index.d.ts.map +1 -1
- package/dist/store/exodus/index.js +2 -2
- package/dist/store/exodus/index.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +30 -1
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts +11 -0
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +26 -1
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/prior-recoveries.d.ts +3 -2
- package/dist/store/exodus/prior-recoveries.d.ts.map +1 -1
- package/dist/store/exodus/prior-recoveries.js +7 -3
- package/dist/store/exodus/prior-recoveries.js.map +1 -1
- package/dist/store/exodus/reconcile.d.ts +44 -6
- package/dist/store/exodus/reconcile.d.ts.map +1 -1
- package/dist/store/exodus/reconcile.js +246 -173
- package/dist/store/exodus/reconcile.js.map +1 -1
- package/dist/store/exodus/recovery.d.ts +48 -0
- package/dist/store/exodus/recovery.d.ts.map +1 -1
- package/dist/store/exodus/recovery.js +104 -6
- package/dist/store/exodus/recovery.js.map +1 -1
- package/dist/store/exodus/seal.d.ts.map +1 -1
- package/dist/store/exodus/seal.js +4 -2
- package/dist/store/exodus/seal.js.map +1 -1
- package/dist/store/exodus/table-order.d.ts +6 -0
- package/dist/store/exodus/table-order.d.ts.map +1 -1
- package/dist/store/exodus/table-order.js +15 -0
- package/dist/store/exodus/table-order.js.map +1 -1
- package/dist/store/exodus/types.d.ts +4 -0
- package/dist/store/exodus/types.d.ts.map +1 -1
- package/dist/store/exodus/types.js +4 -0
- package/dist/store/exodus/types.js.map +1 -1
- package/dist/store/exodus/verify-migration.d.ts.map +1 -1
- package/dist/store/exodus/verify-migration.js +22 -17
- package/dist/store/exodus/verify-migration.js.map +1 -1
- package/dist/store/identity-share.d.ts +14 -0
- package/dist/store/identity-share.d.ts.map +1 -1
- package/dist/store/identity-share.js +33 -0
- package/dist/store/identity-share.js.map +1 -1
- package/dist/store/lock.d.ts +33 -0
- package/dist/store/lock.d.ts.map +1 -1
- package/dist/store/lock.js +60 -0
- package/dist/store/lock.js.map +1 -1
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +7 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts +3 -2
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +7 -5
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts +1 -1
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +9 -1
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
- package/dist/store/repair-malformed-dbs.js +36 -6
- package/dist/store/repair-malformed-dbs.js.map +1 -1
- package/dist/store/restore-marker.d.ts +20 -2
- package/dist/store/restore-marker.d.ts.map +1 -1
- package/dist/store/restore-marker.js +41 -1
- package/dist/store/restore-marker.js.map +1 -1
- package/dist/store/row-identity-flag.d.ts +9 -6
- package/dist/store/row-identity-flag.d.ts.map +1 -1
- package/dist/store/row-identity-flag.js +10 -7
- package/dist/store/row-identity-flag.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 +132 -31
- package/dist/store/row-identity-registry.js.map +1 -1
- package/dist/store/row-identity.d.ts +81 -14
- package/dist/store/row-identity.d.ts.map +1 -1
- package/dist/store/row-identity.js +238 -32
- package/dist/store/row-identity.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +368 -0
- package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
- package/dist/store/schema/cleo-shared/brain.js +104 -2
- package/dist/store/schema/cleo-shared/brain.js.map +1 -1
- package/dist/store/sync/apply/applier.d.ts +5 -0
- package/dist/store/sync/apply/applier.d.ts.map +1 -1
- package/dist/store/sync/apply/applier.js +5 -1
- package/dist/store/sync/apply/applier.js.map +1 -1
- package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
- package/dist/store/sync/apply/parent-delete.js +4 -0
- package/dist/store/sync/apply/parent-delete.js.map +1 -1
- package/dist/store/sync/capture.d.ts +13 -1
- package/dist/store/sync/capture.d.ts.map +1 -1
- package/dist/store/sync/capture.js +31 -3
- package/dist/store/sync/capture.js.map +1 -1
- package/dist/store/sync/flags.d.ts +14 -5
- package/dist/store/sync/flags.d.ts.map +1 -1
- package/dist/store/sync/flags.js +20 -8
- package/dist/store/sync/flags.js.map +1 -1
- package/dist/store/sync/genesis.d.ts +130 -0
- package/dist/store/sync/genesis.d.ts.map +1 -0
- package/dist/store/sync/genesis.js +337 -0
- package/dist/store/sync/genesis.js.map +1 -0
- package/dist/store/sync/repair.d.ts +2 -2
- package/dist/store/sync/repair.d.ts.map +1 -1
- package/dist/store/sync/repair.js +55 -15
- package/dist/store/sync/repair.js.map +1 -1
- package/dist/store/sync/sealer.d.ts +14 -0
- package/dist/store/sync/sealer.d.ts.map +1 -1
- package/dist/store/sync/sealer.js +27 -6
- package/dist/store/sync/sealer.js.map +1 -1
- package/dist/store/sync/segments.d.ts +124 -0
- package/dist/store/sync/segments.d.ts.map +1 -0
- package/dist/store/sync/segments.js +267 -0
- package/dist/store/sync/segments.js.map +1 -0
- package/dist/store/sync/sequencing.d.ts +44 -1
- package/dist/store/sync/sequencing.d.ts.map +1 -1
- package/dist/store/sync/sequencing.js +59 -2
- package/dist/store/sync/sequencing.js.map +1 -1
- package/dist/store/sync/timestamp-canon.d.ts +6 -3
- package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
- package/dist/store/sync/timestamp-canon.js +55 -4
- package/dist/store/sync/timestamp-canon.js.map +1 -1
- package/dist/store/sync/txn-signing.d.ts +69 -0
- package/dist/store/sync/txn-signing.d.ts.map +1 -0
- package/dist/store/sync/txn-signing.js +81 -0
- package/dist/store/sync/txn-signing.js.map +1 -0
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +30 -0
- 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 +65 -2
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/system/backup.d.ts +3 -2
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +43 -17
- package/dist/system/backup.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +2 -1
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +26 -0
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +95 -28
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +14 -4
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +50 -4
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/test-run-binding.d.ts +14 -0
- package/dist/tasks/test-run-binding.d.ts.map +1 -1
- package/dist/tasks/test-run-binding.js +35 -4
- package/dist/tasks/test-run-binding.js.map +1 -1
- package/dist/upgrade.d.ts +6 -0
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +58 -11
- package/dist/upgrade.js.map +1 -1
- package/migrations/drizzle-cleo-global/20261010120000_t12894-brain-row-uids/migration.sql +88 -0
- package/migrations/drizzle-cleo-project/20261010120000_t12894-brain-row-uids/migration.sql +92 -0
- package/migrations/sync-journal/20261007120000_t12343-segment-outbox/migration.sql +38 -0
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +2 -2
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The live store's own bare legacy family as a reconcile source.
|
|
3
|
+
*
|
|
4
|
+
* A `cleo.db` from before consolidation can hold rows in bare tables
|
|
5
|
+
* (`tasks`, `task_labels`, `sessions`, …) that the runtime no longer reads.
|
|
6
|
+
* Two reconcile modes carry them into the prefixed tables:
|
|
7
|
+
*
|
|
8
|
+
* - full mode, while `tasks_tasks` is still EMPTY (the project never ran on
|
|
9
|
+
* the consolidated store): every bare row (T12346);
|
|
10
|
+
* - bare-strands mode (T13309), once `tasks_tasks` is populated: only bare
|
|
11
|
+
* rows whose key the prefixed twin lacks, plus bare tasks whose id a
|
|
12
|
+
* DIFFERENT live task took (renumbered by the caller). A row that is, or
|
|
13
|
+
* refers to, a task the live store recorded as deleted is skipped and named,
|
|
14
|
+
* never resurrected, and so is a row referring to a task neither side holds.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
* @task T12346
|
|
18
|
+
* @task T13309
|
|
19
|
+
*/
|
|
20
|
+
import { join } from 'node:path';
|
|
21
|
+
import { openCleoDbSnapshot } from '../open-cleo-db.js';
|
|
22
|
+
import { bareTableDigest } from '../sync/flags.js';
|
|
23
|
+
import { taskReferenceColumns } from '../task-reference-columns.js';
|
|
24
|
+
import { legacyRowProjection } from './column-transforms.js';
|
|
25
|
+
import { EXODUS_RECEIPTS_TABLE, identityImageSql } from './recovery.js';
|
|
26
|
+
import { resolveConsolidatedTableName } from './table-name-map.js';
|
|
27
|
+
import { countRows, hasTable, ident } from './table-order.js';
|
|
28
|
+
import { remapCollidingTaskIds } from './task-id-remap.js';
|
|
29
|
+
import { BARE_SOURCE_NAME, BARE_STRANDS_SOURCE_NAME } from './types.js';
|
|
30
|
+
/**
|
|
31
|
+
* Whether a bare legacy table in the live `cleo.db` is one the runtime NO LONGER
|
|
32
|
+
* reads — i.e. its runtime target is a different (prefixed) table. Derived from
|
|
33
|
+
* the runtime's own table bindings via `resolveTarget`, never a hand-kept list:
|
|
34
|
+
* `tasks` → `tasks_tasks` is dead-bare; `audit_log` → `audit_log` is live.
|
|
35
|
+
*
|
|
36
|
+
* @task T12346
|
|
37
|
+
*/
|
|
38
|
+
function isRuntimeDeadBare(resolveTarget, table) {
|
|
39
|
+
const target = resolveTarget('tasks', table);
|
|
40
|
+
return target.kind !== 'skip' && target.targetName !== table;
|
|
41
|
+
}
|
|
42
|
+
/** The dead bare tables of the live store that hold rows, with their DDL. */
|
|
43
|
+
function deadBareTables(live, resolveTarget) {
|
|
44
|
+
return live
|
|
45
|
+
.prepare("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND sql IS NOT NULL")
|
|
46
|
+
.all().filter((t) => isRuntimeDeadBare(resolveTarget, t.name) && countRows(live, 'main', t.name) > 0);
|
|
47
|
+
}
|
|
48
|
+
/** Whether `tasks_tasks` holds a row (the project has run on the consolidated store). */
|
|
49
|
+
function liveTaskGraphPopulated(live) {
|
|
50
|
+
return hasTable(live, 'main', 'tasks_tasks') && countRows(live, 'main', 'tasks_tasks') > 0;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The live store's own dead bare task-core family as a reconcile source — item
|
|
54
|
+
* 2 of T12319, found real by the T12346 sweep: a stranded `cleo.db` can hold
|
|
55
|
+
* rows in bare tables the runtime no longer reads that exist in NO legacy file
|
|
56
|
+
* (llmtxt: 1,972 `task_labels`; versionguard: 20 `task_dependencies`).
|
|
57
|
+
*
|
|
58
|
+
* Offered ONLY while the prefixed `tasks_tasks` is still empty — i.e. the
|
|
59
|
+
* project never ran on the consolidated store. Once it has, a bare row missing
|
|
60
|
+
* from the prefixed family may be one the runtime deliberately removed; the
|
|
61
|
+
* bare-strands mode ({@link bareStrandSource}) handles that case.
|
|
62
|
+
*
|
|
63
|
+
* @returns The descriptor (path = the materialised file), or `null`.
|
|
64
|
+
*/
|
|
65
|
+
export async function bareTaskCoreSource(liveStorePath, resolveTarget, outDir) {
|
|
66
|
+
const live = openCleoDbSnapshot(liveStorePath, { readOnly: true });
|
|
67
|
+
let tables;
|
|
68
|
+
try {
|
|
69
|
+
if (liveTaskGraphPopulated(live.db))
|
|
70
|
+
return null;
|
|
71
|
+
tables = deadBareTables(live.db, resolveTarget);
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
live.close();
|
|
75
|
+
}
|
|
76
|
+
if (tables.length === 0)
|
|
77
|
+
return null;
|
|
78
|
+
const path = join(outDir, 'cleo-bare-task-core.db');
|
|
79
|
+
const kept = await materializeBareTables(liveStorePath, tables, path, outDir);
|
|
80
|
+
return kept > 0 ? { name: BARE_SOURCE_NAME, path, targetScope: 'project' } : null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Copy `tables` (rows and DDL) out of the live store into a standalone file at
|
|
84
|
+
* `path`, minus rows a FRESH project store already holds.
|
|
85
|
+
*
|
|
86
|
+
* Built table by table from the live file's own DDL (a whole-file copy cannot
|
|
87
|
+
* be pruned: sqlite-vec `vec0` tables cannot be dropped without their module).
|
|
88
|
+
* Rows a fresh project store already holds (e.g. the lineage's 18 backfilled
|
|
89
|
+
* `commits`) are not project data and are excluded — measured by building such
|
|
90
|
+
* a store, not by guessing — so a reconciled project ends up with exactly what
|
|
91
|
+
* a fresh one has there, the same as exodus-on-open. Tables left empty are
|
|
92
|
+
* dropped, so the post-copy verification judges exactly what was copied.
|
|
93
|
+
*
|
|
94
|
+
* @returns The rows kept.
|
|
95
|
+
*/
|
|
96
|
+
async function materializeBareTables(liveStorePath, tables, path, outDir) {
|
|
97
|
+
const seedPath = await buildFreshProjectStore(join(outDir, 'fresh-project-seed.db'));
|
|
98
|
+
const snap = openCleoDbSnapshot(path, { readOnly: false });
|
|
99
|
+
let kept = 0;
|
|
100
|
+
try {
|
|
101
|
+
snap.db.exec('PRAGMA foreign_keys=OFF');
|
|
102
|
+
snap.db.exec(`ATTACH DATABASE '${liveStorePath.replace(/'/g, "''")}' AS live`);
|
|
103
|
+
snap.db.exec(`ATTACH DATABASE '${seedPath.replace(/'/g, "''")}' AS seed`);
|
|
104
|
+
for (const t of tables) {
|
|
105
|
+
snap.db.exec(t.sql);
|
|
106
|
+
snap.db.exec(`INSERT INTO main.${ident(t.name)} SELECT * FROM live.${ident(t.name)}`);
|
|
107
|
+
if (hasTable(snap.db, 'seed', t.name)) {
|
|
108
|
+
const seedCols = new Set(snap.db.prepare(`PRAGMA seed.table_info(${ident(t.name)})`).all().map((c) => c.name));
|
|
109
|
+
const cols = snap.db.prepare(`PRAGMA main.table_info(${ident(t.name)})`).all();
|
|
110
|
+
// A seed row is identified by its KEY: seeded rows carry the time they
|
|
111
|
+
// were seeded (e.g. `commits.created_at`), so whole-row equality never
|
|
112
|
+
// matches a seed written on another day. Keyless tables compare rows.
|
|
113
|
+
const pk = cols.filter((c) => c.pk > 0 && seedCols.has(c.name)).map((c) => c.name);
|
|
114
|
+
const match = (pk.length > 0 ? pk : cols.map((c) => c.name).filter((c) => seedCols.has(c)))
|
|
115
|
+
.map((c) => `s.${ident(c)} IS m.${ident(c)}`)
|
|
116
|
+
.join(' AND ');
|
|
117
|
+
if (match.length > 0)
|
|
118
|
+
snap.db.exec(`DELETE FROM main.${ident(t.name)} AS m WHERE EXISTS (SELECT 1 FROM seed.${ident(t.name)} s WHERE ${match})`);
|
|
119
|
+
}
|
|
120
|
+
const n = countRows(snap.db, 'main', t.name);
|
|
121
|
+
if (n === 0)
|
|
122
|
+
snap.db.exec(`DROP TABLE main.${ident(t.name)}`);
|
|
123
|
+
kept += n;
|
|
124
|
+
}
|
|
125
|
+
snap.db.exec('DETACH DATABASE live');
|
|
126
|
+
snap.db.exec('DETACH DATABASE seed');
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
snap.close();
|
|
130
|
+
}
|
|
131
|
+
return kept;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Build a FRESH project store — consolidated schema plus the tasks-domain
|
|
135
|
+
* lineage, exactly as a brand-new project gets it — and return its path. Its
|
|
136
|
+
* rows are, by construction, only what CLEO seeds (e.g. the 18 backfilled
|
|
137
|
+
* `commits`), never project data.
|
|
138
|
+
*/
|
|
139
|
+
async function buildFreshProjectStore(path) {
|
|
140
|
+
const { getDualScopeNativeDb, openDualScopeDbAtPath } = await import('../dual-scope-db.js');
|
|
141
|
+
const { ensureTasksDomainTables, seedTasksMeta } = await import('../sqlite.js');
|
|
142
|
+
const handle = await openDualScopeDbAtPath('project', path, undefined, { dedicated: true });
|
|
143
|
+
try {
|
|
144
|
+
const native = getDualScopeNativeDb(handle);
|
|
145
|
+
ensureTasksDomainTables(native, path);
|
|
146
|
+
seedTasksMeta(native);
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
handle.close();
|
|
150
|
+
}
|
|
151
|
+
return path;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Audit actions that record a task's deletion, the whole vocabulary as of
|
|
155
|
+
* T13309: `cleo delete` writes `task_deleted` (archiving keeps the row, so
|
|
156
|
+
* `tasks_archived` is no deletion). Sessions have none — session GC and
|
|
157
|
+
* cleanup remove rows without an audit record — so a bare session row is
|
|
158
|
+
* copied unless its key is present.
|
|
159
|
+
*/
|
|
160
|
+
const TASK_DELETION_ACTIONS = ['task_deleted'];
|
|
161
|
+
/** A renumbering that changes nothing (no shadowed bare task, or no source). */
|
|
162
|
+
const NO_REMAP = {
|
|
163
|
+
sources: [],
|
|
164
|
+
remaps: [],
|
|
165
|
+
undecided: null,
|
|
166
|
+
remappedPath: null,
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* How a bare row (alias `s`) produces the twin's primary key: `match` joins it
|
|
170
|
+
* to a twin row (alias `t`), `exprs` are the key values in key order. `null`
|
|
171
|
+
* when the bare table cannot produce every key column.
|
|
172
|
+
*/
|
|
173
|
+
function twinKey(db, bareSchema, bare, twinSchema, twin) {
|
|
174
|
+
const pk = db.prepare(`PRAGMA ${ident(twinSchema)}.table_info(${ident(twin)})`).all()
|
|
175
|
+
.filter((c) => c.pk > 0)
|
|
176
|
+
.sort((a, b) => a.pk - b.pk)
|
|
177
|
+
.map((c) => c.name);
|
|
178
|
+
const bareCols = new Set(db.prepare(`PRAGMA ${ident(bareSchema)}.table_info(${ident(bare)})`).all().map((c) => c.name));
|
|
179
|
+
// Compared in the PROJECTED form the copy writes (T12346), as countMissing does.
|
|
180
|
+
const projection = legacyRowProjection(twin, bare);
|
|
181
|
+
const keyOf = (c) => {
|
|
182
|
+
const project = projection.get(c);
|
|
183
|
+
if (project)
|
|
184
|
+
return project((name) => `s.${ident(name)}`);
|
|
185
|
+
return bareCols.has(c) ? `s.${ident(c)}` : null;
|
|
186
|
+
};
|
|
187
|
+
const exprs = pk.map(keyOf);
|
|
188
|
+
if (pk.length === 0 || !exprs.every((e) => e !== null))
|
|
189
|
+
return null;
|
|
190
|
+
return {
|
|
191
|
+
match: pk.map((c, i) => `t.${ident(c)} = ${exprs[i]}`).join(' AND '),
|
|
192
|
+
exprs,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The live store's stranded bare rows as a reconcile source (T13309): for a
|
|
197
|
+
* project already running on the consolidated store, the bare rows whose key
|
|
198
|
+
* the prefixed twin lacks, and the bare tasks a different live task shadows by
|
|
199
|
+
* id (kept so the caller's renumbering recovers them).
|
|
200
|
+
*
|
|
201
|
+
* The shadowed tasks are renumbered first, with every reference re-pointed,
|
|
202
|
+
* so a child row is judged by the key it is copied under, never by the key of
|
|
203
|
+
* the live holder's child (T13333). An undecided collision is not renumbered:
|
|
204
|
+
* the caller withholds the task graph.
|
|
205
|
+
*
|
|
206
|
+
* Skipped, and named in `skipped`: a row that is, or whose task reference
|
|
207
|
+
* points at, a task the live store recorded as deleted (`tasks_audit_log`
|
|
208
|
+
* action `task_deleted`), a row whose task reference neither the live store
|
|
209
|
+
* nor the copy holds (`parent-absent`), and, to a fixed point, a row whose
|
|
210
|
+
* task reference is a bare task this run skipped (`parent-skipped`, T13334).
|
|
211
|
+
* A deletion record of a shadowed id, or of a fresh id a renumbering took,
|
|
212
|
+
* belongs to another task and skips nothing. A table whose twin key the bare
|
|
213
|
+
* table cannot produce keeps every row, and the post-copy verification judges
|
|
214
|
+
* it.
|
|
215
|
+
*
|
|
216
|
+
* @param liveStorePath - The live project `cleo.db` (read only).
|
|
217
|
+
* @param resolveTarget - Runtime target resolver.
|
|
218
|
+
* @param outDir - Scratch directory for the materialised file.
|
|
219
|
+
* @param cleoDir - The project's `.cleo`, where earlier receipts live.
|
|
220
|
+
*/
|
|
221
|
+
export async function bareStrandSource(liveStorePath, resolveTarget, outDir, cleoDir) {
|
|
222
|
+
const live = openCleoDbSnapshot(liveStorePath, { readOnly: true });
|
|
223
|
+
let tables;
|
|
224
|
+
let deleted = [];
|
|
225
|
+
let accounted;
|
|
226
|
+
const none = { source: null, skipped: [], remap: NO_REMAP, accountingPath: null };
|
|
227
|
+
try {
|
|
228
|
+
if (!liveTaskGraphPopulated(live.db))
|
|
229
|
+
return { ...none, accounted: [], populated: false };
|
|
230
|
+
tables = deadBareTables(live.db, resolveTarget);
|
|
231
|
+
accounted = tables.map((t) => bareTableDigest(live.db, 'main', t.name));
|
|
232
|
+
if (hasTable(live.db, 'main', 'tasks_audit_log')) {
|
|
233
|
+
deleted = live.db
|
|
234
|
+
.prepare(`SELECT DISTINCT task_id AS id FROM main.tasks_audit_log WHERE action IN (${TASK_DELETION_ACTIONS.map(() => '?').join(', ')})`)
|
|
235
|
+
.all(...TASK_DELETION_ACTIONS).map((r) => r.id);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
finally {
|
|
239
|
+
live.close();
|
|
240
|
+
}
|
|
241
|
+
if (tables.length === 0)
|
|
242
|
+
return { ...none, accounted, populated: true };
|
|
243
|
+
const materialized = join(outDir, 'cleo-bare-strands.db');
|
|
244
|
+
await materializeBareTables(liveStorePath, tables, materialized, outDir);
|
|
245
|
+
// Renumber BEFORE judging any row (T13333): a child of a shadowed task keyed
|
|
246
|
+
// by the shadowed id would otherwise match the live holder's child.
|
|
247
|
+
const remap = remapCollidingTaskIds(liveStorePath, [{ name: 'tasks', path: materialized, targetScope: 'project' }], outDir, cleoDir);
|
|
248
|
+
// An undecided collision withholds the whole task graph, so the caller
|
|
249
|
+
// reads the rows as they are (as a full run reads its original files).
|
|
250
|
+
const path = remap.undecided === null ? (remap.remappedPath ?? materialized) : materialized;
|
|
251
|
+
const shadowed = [...remap.remaps.map((r) => r.legacyId), ...(remap.undecided?.ids ?? [])];
|
|
252
|
+
// A fresh id is new to this store: a deletion record of it is another task's.
|
|
253
|
+
const fresh = remap.undecided === null
|
|
254
|
+
? remap.remaps.filter((r) => !r.alreadyRecovered).map((r) => r.newId)
|
|
255
|
+
: [];
|
|
256
|
+
// Everything not listed as skipped, renumbered (T13333).
|
|
257
|
+
const accountingPath = join(outDir, 'cleo-bare-strands-accounting.db');
|
|
258
|
+
const skipped = [];
|
|
259
|
+
const snap = openCleoDbSnapshot(path, { readOnly: false, applyPragmas: false });
|
|
260
|
+
let kept = 0;
|
|
261
|
+
try {
|
|
262
|
+
const db = snap.db;
|
|
263
|
+
db.exec(`VACUUM INTO '${accountingPath.replace(/'/g, "''")}'`);
|
|
264
|
+
db.exec('PRAGMA foreign_keys=OFF');
|
|
265
|
+
db.exec(`ATTACH DATABASE '${liveStorePath.replace(/'/g, "''")}' AS live`);
|
|
266
|
+
db.exec(`ATTACH DATABASE '${accountingPath.replace(/'/g, "''")}' AS acct`);
|
|
267
|
+
db.exec('CREATE TEMP TABLE strand_shadowed (id TEXT PRIMARY KEY)');
|
|
268
|
+
db.exec('CREATE TEMP TABLE strand_deleted (id TEXT PRIMARY KEY)');
|
|
269
|
+
const addShadowed = db.prepare('INSERT OR IGNORE INTO temp.strand_shadowed VALUES (?)');
|
|
270
|
+
for (const id of shadowed)
|
|
271
|
+
addShadowed.run(id);
|
|
272
|
+
const addDeleted = db.prepare('INSERT OR IGNORE INTO temp.strand_deleted VALUES (?)');
|
|
273
|
+
for (const id of deleted)
|
|
274
|
+
addDeleted.run(id);
|
|
275
|
+
// A shadowed id's deletion record is the LIVE holder's, a different task;
|
|
276
|
+
// a fresh id's is a task deleted before the renumbering took its id.
|
|
277
|
+
db.exec('DELETE FROM temp.strand_deleted WHERE id IN (SELECT id FROM temp.strand_shadowed)');
|
|
278
|
+
const dropFresh = db.prepare('DELETE FROM temp.strand_deleted WHERE id = ?');
|
|
279
|
+
for (const id of fresh)
|
|
280
|
+
dropFresh.run(id);
|
|
281
|
+
const present = () => tables.map((t) => t.name).filter((name) => hasTable(db, 'main', name));
|
|
282
|
+
const twinOf = (bare) => {
|
|
283
|
+
const r = resolveTarget('tasks', bare);
|
|
284
|
+
return r.kind === 'skip' ? bare : r.targetName;
|
|
285
|
+
};
|
|
286
|
+
const localName = localNameOf(db);
|
|
287
|
+
// A JSON array of task ids is history, never a dangling reference (T13377).
|
|
288
|
+
const refs = taskReferenceColumns(db, localName).filter((r) => !r.jsonArray);
|
|
289
|
+
const drop = (table, column, where, reason) => {
|
|
290
|
+
const ids = db
|
|
291
|
+
.prepare(`SELECT DISTINCT ${ident(column)} AS id FROM main.${ident(table)} AS s WHERE ${where} ORDER BY 1`)
|
|
292
|
+
.all().map((r) => String(r.id));
|
|
293
|
+
if (ids.length === 0)
|
|
294
|
+
return;
|
|
295
|
+
// Every skipped row by its key, so the plan names each one (T13309).
|
|
296
|
+
const info = db.prepare(`PRAGMA main.table_info(${ident(table)})`).all();
|
|
297
|
+
const pk = info
|
|
298
|
+
.filter((c) => c.pk > 0)
|
|
299
|
+
.sort((a, b) => a.pk - b.pk)
|
|
300
|
+
.map((c) => c.name);
|
|
301
|
+
const keyNames = pk.length > 0 ? pk : info.map((c) => c.name);
|
|
302
|
+
const keyCols = keyNames.map(ident).join(', ');
|
|
303
|
+
const keys = db
|
|
304
|
+
.prepare(`SELECT ${keyCols} FROM main.${ident(table)} AS s WHERE ${where} ORDER BY 1`)
|
|
305
|
+
.all().map((row) => JSON.stringify(Object.values(row)));
|
|
306
|
+
// A listed row leaves the accounting copy too: only it may go uncopied.
|
|
307
|
+
if (hasTable(db, 'acct', table)) {
|
|
308
|
+
const same = keyNames.map((c) => `a.${ident(c)} IS s.${ident(c)}`).join(' AND ');
|
|
309
|
+
db.exec(`DELETE FROM acct.${ident(table)} AS a WHERE EXISTS (SELECT 1 FROM main.${ident(table)} AS s WHERE (${where}) AND ${same})`);
|
|
310
|
+
}
|
|
311
|
+
const rows = db.prepare(`DELETE FROM main.${ident(table)} AS s WHERE ${where}`).run().changes;
|
|
312
|
+
// One entry per table and reason, however many passes found its rows.
|
|
313
|
+
const prior = skipped.find((c) => c.sourceTable === table && c.reason === reason);
|
|
314
|
+
if (prior) {
|
|
315
|
+
prior.rows += Number(rows);
|
|
316
|
+
prior.ids = [...new Set([...(prior.ids ?? []), ...ids])].sort();
|
|
317
|
+
prior.keys = [...(prior.keys ?? []), ...keys];
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
skipped.push({
|
|
321
|
+
sourceDb: BARE_STRANDS_SOURCE_NAME,
|
|
322
|
+
sourceTable: table,
|
|
323
|
+
targetTable: twinOf(table),
|
|
324
|
+
rows: Number(rows),
|
|
325
|
+
reason,
|
|
326
|
+
ids,
|
|
327
|
+
keys,
|
|
328
|
+
});
|
|
329
|
+
};
|
|
330
|
+
// Every bare task before any is judged: a reference to one this run then
|
|
331
|
+
// skips is `parent-skipped`, to one no side ever held `parent-absent`.
|
|
332
|
+
db.exec(`CREATE TEMP TABLE strand_tasks AS SELECT id FROM ${hasTable(db, 'main', 'tasks') ? 'main.tasks' : '(SELECT NULL AS id WHERE 0)'}`);
|
|
333
|
+
// 1. Rows the twin already holds by key are not stranded (an undecided
|
|
334
|
+
// shadowed task, left unrenumbered, is not the live holder). A row an earlier reconcile
|
|
335
|
+
// copied into the twin (its committed copy receipt, in the store) that
|
|
336
|
+
// the twin no longer holds was deleted since: copying it again would
|
|
337
|
+
// resurrect it.
|
|
338
|
+
const receipts = hasTable(db, 'live', EXODUS_RECEIPTS_TABLE);
|
|
339
|
+
for (const bare of present()) {
|
|
340
|
+
const twin = twinOf(bare);
|
|
341
|
+
if (!hasTable(db, 'live', twin))
|
|
342
|
+
continue;
|
|
343
|
+
const key = twinKey(db, 'main', bare, 'live', twin);
|
|
344
|
+
if (key === null)
|
|
345
|
+
continue;
|
|
346
|
+
const keep = bare === 'tasks' ? ' AND s.id NOT IN (SELECT id FROM temp.strand_shadowed)' : '';
|
|
347
|
+
db.exec(`DELETE FROM main.${ident(bare)} AS s WHERE EXISTS (SELECT 1 FROM live.${ident(twin)} t WHERE ${key.match})${keep}`);
|
|
348
|
+
if (receipts && hasTable(db, 'main', bare)) {
|
|
349
|
+
drop(bare, firstKeyColumn(db, bare), `${identityImageSql(key.exprs)} IN (SELECT identity_json FROM live.${ident(EXODUS_RECEIPTS_TABLE)} ` +
|
|
350
|
+
`WHERE target_table = '${twin.replace(/'/g, "''")}' AND source_table = '${bare.replace(/'/g, "''")}' ` +
|
|
351
|
+
`AND state = 'committed')${keep}`, 'carried-then-deleted');
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// 2. A deleted task, or a row referring to one, would be resurrected.
|
|
355
|
+
if (hasTable(db, 'main', 'tasks')) {
|
|
356
|
+
drop('tasks', 'id', 'id IN (SELECT id FROM temp.strand_deleted)', 'deleted-live');
|
|
357
|
+
}
|
|
358
|
+
for (const ref of refs) {
|
|
359
|
+
if (!hasTable(db, 'main', ref.table))
|
|
360
|
+
continue;
|
|
361
|
+
drop(ref.table, ref.column, `${ident(ref.column)} IN (SELECT id FROM temp.strand_deleted)`, 'deleted-live');
|
|
362
|
+
}
|
|
363
|
+
// 3. A reference to a task neither side holds would dangle. Repeated to a
|
|
364
|
+
// fixed point (T13334): skipping a task strands every row referring to
|
|
365
|
+
// it, whatever the order of the reference columns.
|
|
366
|
+
const copiesTasks = hasTable(db, 'main', 'tasks');
|
|
367
|
+
let grew;
|
|
368
|
+
do {
|
|
369
|
+
grew = false;
|
|
370
|
+
for (const ref of refs) {
|
|
371
|
+
if (!hasTable(db, 'main', ref.table))
|
|
372
|
+
continue;
|
|
373
|
+
const c = ident(ref.column);
|
|
374
|
+
const inCopy = copiesTasks ? ` AND ${c} NOT IN (SELECT id FROM main.tasks)` : '';
|
|
375
|
+
const dangling = `${c} IS NOT NULL AND ${c} NOT IN (SELECT id FROM live.tasks_tasks)${inCopy}`;
|
|
376
|
+
const before = skipped.reduce((n, s) => n + s.rows, 0);
|
|
377
|
+
drop(ref.table, ref.column, `${dangling} AND ${c} IN (SELECT id FROM temp.strand_tasks)`, 'parent-skipped');
|
|
378
|
+
drop(ref.table, ref.column, `${dangling} AND ${c} NOT IN (SELECT id FROM temp.strand_tasks)`, 'parent-absent');
|
|
379
|
+
if (skipped.reduce((n, s) => n + s.rows, 0) > before)
|
|
380
|
+
grew = true;
|
|
381
|
+
}
|
|
382
|
+
} while (grew);
|
|
383
|
+
for (const bare of present()) {
|
|
384
|
+
const n = countRows(db, 'main', bare);
|
|
385
|
+
if (n === 0)
|
|
386
|
+
db.exec(`DROP TABLE main.${ident(bare)}`);
|
|
387
|
+
kept += n;
|
|
388
|
+
}
|
|
389
|
+
db.exec('DETACH DATABASE acct');
|
|
390
|
+
db.exec('DETACH DATABASE live');
|
|
391
|
+
}
|
|
392
|
+
finally {
|
|
393
|
+
snap.close();
|
|
394
|
+
}
|
|
395
|
+
const source = kept > 0 ? { name: BARE_STRANDS_SOURCE_NAME, path, targetScope: 'project' } : null;
|
|
396
|
+
return {
|
|
397
|
+
source,
|
|
398
|
+
skipped,
|
|
399
|
+
accounted,
|
|
400
|
+
populated: true,
|
|
401
|
+
// Under the strands source name, which the receipt and later runs read.
|
|
402
|
+
remap: {
|
|
403
|
+
sources: source ? [source] : [],
|
|
404
|
+
remaps: remap.remaps.map((r) => ({ ...r, sourceDb: BARE_STRANDS_SOURCE_NAME })),
|
|
405
|
+
undecided: remap.undecided && { ...remap.undecided, sourceDb: BARE_STRANDS_SOURCE_NAME },
|
|
406
|
+
remappedPath: path === materialized ? null : path,
|
|
407
|
+
},
|
|
408
|
+
accountingPath,
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Task references in the copied strands source that the live store cannot
|
|
413
|
+
* resolve after the copy: `table.column -> id` for each (T13334). Empty when
|
|
414
|
+
* every reference a copied row carries names a live task.
|
|
415
|
+
*
|
|
416
|
+
* Only scalar references are judged. A JSON array of task ids (a session's
|
|
417
|
+
* `tasks_completed_json`, `tasks_created_json`) is history: an id in it whose
|
|
418
|
+
* task is gone is valid, as the runtime keeps it (deleting a task leaves it
|
|
419
|
+
* listed) and the sync wire drops it rather than rejecting the row (T12798).
|
|
420
|
+
* A copied session listing a deleted task is therefore copied (T13377).
|
|
421
|
+
*
|
|
422
|
+
* @param liveStorePath - The live project `cleo.db` (read only).
|
|
423
|
+
* @param sourcePath - The strands source the run copied from.
|
|
424
|
+
*/
|
|
425
|
+
export function danglingStrandReferences(liveStorePath, sourcePath) {
|
|
426
|
+
const snap = openCleoDbSnapshot(sourcePath, { readOnly: true, applyPragmas: false });
|
|
427
|
+
try {
|
|
428
|
+
const db = snap.db;
|
|
429
|
+
db.exec(`ATTACH DATABASE '${liveStorePath.replace(/'/g, "''")}' AS live`);
|
|
430
|
+
const out = [];
|
|
431
|
+
try {
|
|
432
|
+
for (const ref of taskReferenceColumns(db, localNameOf(db))) {
|
|
433
|
+
if (ref.jsonArray || !hasTable(db, 'main', ref.table))
|
|
434
|
+
continue;
|
|
435
|
+
const c = ident(ref.column);
|
|
436
|
+
const ids = db
|
|
437
|
+
.prepare(`SELECT DISTINCT ${c} AS id FROM main.${ident(ref.table)} WHERE ${c} IS NOT NULL AND ${c} NOT IN (SELECT id FROM live.tasks_tasks) ORDER BY 1`)
|
|
438
|
+
.all();
|
|
439
|
+
for (const { id } of ids)
|
|
440
|
+
out.push(`${ref.table}.${ref.column} -> ${String(id)}`);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
finally {
|
|
444
|
+
db.exec('DETACH DATABASE live');
|
|
445
|
+
}
|
|
446
|
+
return out;
|
|
447
|
+
}
|
|
448
|
+
finally {
|
|
449
|
+
snap.close();
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
/** The first primary-key column of a bare-family table (its first column if keyless). */
|
|
453
|
+
function firstKeyColumn(db, table) {
|
|
454
|
+
const info = db.prepare(`PRAGMA main.table_info(${ident(table)})`).all();
|
|
455
|
+
return (info.find((c) => c.pk === 1) ?? info[0])?.name ?? 'rowid';
|
|
456
|
+
}
|
|
457
|
+
/** Consolidated table name → its name in a bare-family file, by the exodus map. */
|
|
458
|
+
function localNameOf(db) {
|
|
459
|
+
const byConsolidated = new Map();
|
|
460
|
+
const tables = db
|
|
461
|
+
.prepare("SELECT name FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")
|
|
462
|
+
.all();
|
|
463
|
+
for (const { name } of tables) {
|
|
464
|
+
const r = resolveConsolidatedTableName('tasks', name);
|
|
465
|
+
if (r.kind !== 'skip')
|
|
466
|
+
byConsolidated.set(r.targetName, name);
|
|
467
|
+
}
|
|
468
|
+
return (consolidated) => byConsolidated.get(consolidated) ?? null;
|
|
469
|
+
}
|
|
470
|
+
//# sourceMappingURL=bare-family.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bare-family.js","sourceRoot":"","sources":["../../../src/store/exodus/bare-family.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-transforms.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/column-transforms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO1D;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"column-transforms.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/column-transforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -169,20 +169,27 @@ export const ENUM_NORMALIZATIONS = new Map([
|
|
|
169
169
|
` ELSE 'chore'` +
|
|
170
170
|
` END`,
|
|
171
171
|
],
|
|
172
|
-
// --- tasks_tasks.archive_reason (T12319)
|
|
172
|
+
// --- tasks_tasks.archive_reason (T12319, T12711) -------------------------
|
|
173
173
|
// A legacy tasks.db that never ran the T1408 migration still carries
|
|
174
|
-
// pre-enum reasons
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
//
|
|
174
|
+
// pre-enum reasons that the 6-value CHECK rejects — so `INSERT OR IGNORE`
|
|
175
|
+
// silently dropped those tasks (23 of 849 in llmtxt, 4,692 of 5,330 in
|
|
176
|
+
// claude-todo) and the acceptance criteria pointing at them then aborted the
|
|
177
|
+
// whole migration. Each known legacy reason maps to the member that says the
|
|
178
|
+
// same thing (T12711); the enum is never widened:
|
|
179
|
+
// completed → completed-unverified
|
|
180
|
+
// deleted, orphan-cleanup, synthetic-test-artifact → cancelled
|
|
181
|
+
// recovered → reconciled
|
|
182
|
+
// Any other non-NULL out-of-enum value takes the T1408 backfill rule
|
|
183
|
+
// (`drizzle-tasks/20260424000000_t1408-archive-reason-enum`): the
|
|
184
|
+
// migration-only tombstone 'completed-unverified'. Every mapped row keeps its
|
|
185
|
+
// legacy value in `_exodus_recovery_value_map` (T12711).
|
|
181
186
|
[
|
|
182
187
|
'tasks_tasks.archive_reason',
|
|
183
188
|
(src) => `CASE` +
|
|
184
189
|
` WHEN ${src} IS NULL THEN NULL` +
|
|
185
190
|
` WHEN ${src} IN ('verified', 'reconciled', 'superseded', 'shadowed', 'cancelled', 'completed-unverified') THEN ${src}` +
|
|
191
|
+
` WHEN ${src} IN ('deleted', 'orphan-cleanup', 'synthetic-test-artifact') THEN 'cancelled'` +
|
|
192
|
+
` WHEN ${src} = 'recovered' THEN 'reconciled'` +
|
|
186
193
|
` ELSE 'completed-unverified'` +
|
|
187
194
|
` END`,
|
|
188
195
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-transforms.js","sourceRoot":"","sources":["../../../src/store/exodus/column-transforms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,iEAAiE;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqC,IAAI,GAAG,CAAC;IAC3E,2EAA2E;IAC3E,+DAA+D;IAC/D;QACE,gCAAgC;QAChC,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,GAAG,qDAAqD,GAAG,MAAM;KAC3F;IAED,4EAA4E;IAC5E,8EAA8E;IAC9E,sCAAsC;IACtC,4CAA4C;IAC5C;QACE,qCAAqC;QACrC,CAAC,GAAW,EAAE,EAAE,CACd,MAAM;YACN,eAAe,GAAG,2BAA2B,GAAG,gCAAgC,GAAG,gCAAgC;YACnH,eAAe,GAAG,gCAAgC;YAClD,eAAe,GAAG,oCAAoC;YACtD,eAAe,GAAG,oCAAoC;YACtD,SAAS,GAAG,EAAE;YACd,MAAM;KACT;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,qEAAqE;IACrE,4EAA4E;IAC5E,8EAA8E;IAC9E,oEAAoE;IAEpE,4EAA4E;IAC5E,yEAAyE;IACzE,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,iFAAiF;IACjF,0EAA0E;IAE1E,2EAA2E;IAC3E,8EAA8E;IAE9E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,sEAAsE;IACtE,gFAAgF;IAChF,gFAAgF;IAChF,uDAAuD;IACvD;QACE,iCAAiC;QACjC,CAAC,GAAW,EAAE,EAAE,CACd,MAAM;YACN,SAAS,GAAG,oBAAoB;YAChC,SAAS,GAAG,8GAA8G,GAAG,EAAE;YAC/H,eAAe;YACf,MAAM;KACT;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,
|
|
1
|
+
{"version":3,"file":"column-transforms.js","sourceRoot":"","sources":["../../../src/store/exodus/column-transforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,8 @@ export interface ExodusScopeHealth {
|
|
|
35
35
|
readonly markerPresent: boolean;
|
|
36
36
|
readonly legacySources: readonly ExodusSourceHealth[];
|
|
37
37
|
readonly strandedResidue: readonly string[];
|
|
38
|
+
/** What the cutover's verify reported beyond data continuity, from the marker (T12711). */
|
|
39
|
+
readonly verifyIssues: readonly string[];
|
|
38
40
|
}
|
|
39
41
|
/** Full read-only exodus health report. */
|
|
40
42
|
export interface ExodusHealth {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,mBAAmB,GACnB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,mBAAmB,GACnB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,4CAA4C;IAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAuHvE"}
|