@cleocode/core 2026.6.6 → 2026.6.7
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/dispatch/contracts/output-contracts.d.ts +36 -0
- package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -0
- package/dist/dispatch/contracts/output-contracts.js +38 -0
- package/dist/dispatch/contracts/output-contracts.js.map +1 -0
- package/dist/dispatch/describe-operation.d.ts +98 -0
- package/dist/dispatch/describe-operation.d.ts.map +1 -0
- package/dist/dispatch/describe-operation.js +101 -0
- package/dist/dispatch/describe-operation.js.map +1 -0
- package/dist/docs/export-document.js +910 -518
- package/dist/docs/export-document.js.map +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -0
- package/dist/internal.js.map +1 -1
- package/dist/llm/index.d.ts +1 -3
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -2
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/model-metadata.d.ts +14 -0
- package/dist/llm/model-metadata.d.ts.map +1 -1
- package/dist/llm/model-metadata.js +23 -0
- package/dist/llm/model-metadata.js.map +1 -1
- package/dist/llm/model-runner.d.ts.map +1 -1
- package/dist/llm/model-runner.js +104 -74
- package/dist/llm/model-runner.js.map +1 -1
- package/dist/llm/plugin-facade.js +1006 -588
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/anthropic.js +4 -0
- package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
- package/dist/llm/provider-registry/builtin/gemini.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/gemini.js +4 -0
- package/dist/llm/provider-registry/builtin/gemini.js.map +1 -1
- package/dist/llm/provider-registry/builtin/ollama.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/ollama.js +4 -0
- package/dist/llm/provider-registry/builtin/ollama.js.map +1 -1
- package/dist/llm/provider-registry/builtin/openai.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/openai.js +6 -0
- package/dist/llm/provider-registry/builtin/openai.js.map +1 -1
- package/dist/llm/transports/index.d.ts +5 -3
- package/dist/llm/transports/index.d.ts.map +1 -1
- package/dist/llm/transports/index.js +5 -2
- package/dist/llm/transports/index.js.map +1 -1
- package/dist/reconciliation/reconciliation-engine.d.ts.map +1 -1
- package/dist/reconciliation/reconciliation-engine.js +3 -0
- package/dist/reconciliation/reconciliation-engine.js.map +1 -1
- package/dist/release/plan.d.ts +27 -0
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +36 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/provenance-fk.d.ts +74 -0
- package/dist/release/provenance-fk.d.ts.map +1 -0
- package/dist/release/provenance-fk.js +122 -0
- package/dist/release/provenance-fk.js.map +1 -0
- package/dist/release/reconcile.d.ts +2 -53
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +13 -93
- package/dist/release/reconcile.js.map +1 -1
- package/dist/sticky/convert.d.ts.map +1 -1
- package/dist/sticky/convert.js +3 -0
- package/dist/sticky/convert.js.map +1 -1
- package/dist/store/exodus/column-transforms.d.ts +35 -8
- package/dist/store/exodus/column-transforms.d.ts.map +1 -1
- package/dist/store/exodus/column-transforms.js +47 -13
- package/dist/store/exodus/column-transforms.js.map +1 -1
- package/dist/store/exodus/count-parity.d.ts +71 -0
- package/dist/store/exodus/count-parity.d.ts.map +1 -0
- package/dist/store/exodus/count-parity.js +124 -0
- package/dist/store/exodus/count-parity.js.map +1 -0
- package/dist/store/exodus/health.d.ts +70 -0
- package/dist/store/exodus/health.d.ts.map +1 -0
- package/dist/store/exodus/health.js +130 -0
- package/dist/store/exodus/health.js.map +1 -0
- package/dist/store/exodus/index.d.ts +3 -0
- package/dist/store/exodus/index.d.ts.map +1 -1
- package/dist/store/exodus/index.js +3 -0
- 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 +98 -31
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/plan.d.ts +48 -4
- package/dist/store/exodus/plan.d.ts.map +1 -1
- package/dist/store/exodus/plan.js +67 -9
- package/dist/store/exodus/plan.js.map +1 -1
- package/dist/store/exodus/seal.d.ts +69 -0
- package/dist/store/exodus/seal.d.ts.map +1 -0
- package/dist/store/exodus/seal.js +73 -0
- package/dist/store/exodus/seal.js.map +1 -0
- package/dist/store/exodus/types.d.ts +24 -1
- package/dist/store/exodus/types.d.ts.map +1 -1
- 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 +53 -26
- package/dist/store/exodus/verify-migration.js.map +1 -1
- package/dist/tasks/add.d.ts +13 -0
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +50 -18
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/archive.d.ts.map +1 -1
- package/dist/tasks/archive.js +12 -7
- package/dist/tasks/archive.js.map +1 -1
- package/dist/tasks/child-disposition.d.ts +66 -0
- package/dist/tasks/child-disposition.d.ts.map +1 -0
- package/dist/tasks/child-disposition.js +80 -0
- package/dist/tasks/child-disposition.js.map +1 -0
- package/dist/tasks/delete-preview.js +1 -1
- package/dist/tasks/delete-preview.js.map +1 -1
- package/dist/tasks/deletion-strategy.d.ts +21 -3
- package/dist/tasks/deletion-strategy.d.ts.map +1 -1
- package/dist/tasks/deletion-strategy.js +61 -15
- package/dist/tasks/deletion-strategy.js.map +1 -1
- package/dist/tasks/engine-wrap.d.ts +8 -0
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +22 -9
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +12 -0
- package/dist/tasks/update.js.map +1 -1
- package/package.json +12 -12
- package/dist/llm/transports/openai.d.ts +0 -181
- package/dist/llm/transports/openai.d.ts.map +0 -1
- package/dist/llm/transports/openai.js +0 -645
- package/dist/llm/transports/openai.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo exodus seal` core — certify an already-migrated install (T11837).
|
|
3
|
+
*
|
|
4
|
+
* Some installs were cut over to the consolidated `cleo.db` BEFORE the archive +
|
|
5
|
+
* completion-marker subsystem (T11777) existed: their data is fully in `cleo.db`
|
|
6
|
+
* but the legacy source DBs were never archived and no `exodus-complete` marker
|
|
7
|
+
* was written, so `exodus-on-open` keeps re-arming (the ~34s-per-command tax)
|
|
8
|
+
* unless muzzled by `CLEO_DISABLE_EXODUS_ON_OPEN`. `cleo exodus migrate` would
|
|
9
|
+
* complete the archival — but it routes through the heavy `verifyMigration`
|
|
10
|
+
* digest, which OOMs on a 1.7 GB-class legacy `brain.db`.
|
|
11
|
+
*
|
|
12
|
+
* `sealExodus` closes the loop WITHOUT a destructive re-migrate and WITHOUT the
|
|
13
|
+
* OOM digest: it gates on the memory-safe COUNT(*) deficit check
|
|
14
|
+
* ({@link computeCountParity}) — the SAME gate (`target >= source`) the archive
|
|
15
|
+
* path enforces — and, only when no rows are missing, archives the consumed
|
|
16
|
+
* legacy sources (reversible move) and writes the per-scope completion marker.
|
|
17
|
+
*
|
|
18
|
+
* @task T11837 (fleet-flow surface — seal an already-migrated install)
|
|
19
|
+
* @epic T11833 (EP-EXODUS-FLEET-HARDENING)
|
|
20
|
+
* @saga T11242 (SG-DB-SUBSTRATE-V2)
|
|
21
|
+
*/
|
|
22
|
+
import { type CountParityResult } from './count-parity.js';
|
|
23
|
+
import type { ExodusPlan, ExodusScope } from './types.js';
|
|
24
|
+
/** Scope selector for {@link sealExodus}. */
|
|
25
|
+
export type SealScopeArg = ExodusScope | 'both';
|
|
26
|
+
/** Per-scope outcome of a seal. */
|
|
27
|
+
export interface SealScopeOutcome {
|
|
28
|
+
/** Scope certified. */
|
|
29
|
+
readonly scope: ExodusScope;
|
|
30
|
+
/** `true` if a completion marker already existed (re-seal is idempotent). */
|
|
31
|
+
readonly alreadySealed: boolean;
|
|
32
|
+
/** Per-source archive outcomes for this scope. */
|
|
33
|
+
readonly archived: ReadonlyArray<{
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly action: 'archived' | 'absent';
|
|
36
|
+
readonly archivedTo: string | null;
|
|
37
|
+
}>;
|
|
38
|
+
/** Absolute path of the completion marker written. */
|
|
39
|
+
readonly markerPath: string;
|
|
40
|
+
}
|
|
41
|
+
/** Result of {@link sealExodus}. */
|
|
42
|
+
export interface SealResult {
|
|
43
|
+
/** `true` when the seal proceeded; `false` when refused on a parity deficit. */
|
|
44
|
+
readonly ok: boolean;
|
|
45
|
+
/** Populated when `ok === false`: why the seal was refused. */
|
|
46
|
+
readonly refusedReason?: string;
|
|
47
|
+
/** The COUNT(*)-only parity sweep that gated the seal. */
|
|
48
|
+
readonly parity: CountParityResult;
|
|
49
|
+
/** Per-scope outcomes (empty when refused). */
|
|
50
|
+
readonly scopes: readonly SealScopeOutcome[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Seal one or more scopes of an already-migrated install: gate on COUNT(*) parity
|
|
54
|
+
* (no digest), then archive the consumed legacy sources + write the completion
|
|
55
|
+
* marker. Refuses (archives nothing) if ANY table has a deficit — the data is not
|
|
56
|
+
* fully in `cleo.db` and the operator must run `cleo exodus migrate` first.
|
|
57
|
+
*
|
|
58
|
+
* Idempotent + reversible: archiving is a `rename` (never delete) and a re-seal
|
|
59
|
+
* over an already-sealed scope simply refreshes the marker.
|
|
60
|
+
*
|
|
61
|
+
* @param plan - The exodus plan (`buildExodusPlan(cwd)`).
|
|
62
|
+
* @param scopeArg - Which scope(s) to seal.
|
|
63
|
+
* @param cwd - Working directory used to resolve the project dir.
|
|
64
|
+
* @returns A {@link SealResult}.
|
|
65
|
+
*
|
|
66
|
+
* @task T11837
|
|
67
|
+
*/
|
|
68
|
+
export declare function sealExodus(plan: ExodusPlan, scopeArg: SealScopeArg, cwd: string | undefined): SealResult;
|
|
69
|
+
//# sourceMappingURL=seal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/seal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,EAAE,KAAK,iBAAiB,EAAsB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhD,mCAAmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;QACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;IACH,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C;AAOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,UAAU,CAqCZ"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo exodus seal` core — certify an already-migrated install (T11837).
|
|
3
|
+
*
|
|
4
|
+
* Some installs were cut over to the consolidated `cleo.db` BEFORE the archive +
|
|
5
|
+
* completion-marker subsystem (T11777) existed: their data is fully in `cleo.db`
|
|
6
|
+
* but the legacy source DBs were never archived and no `exodus-complete` marker
|
|
7
|
+
* was written, so `exodus-on-open` keeps re-arming (the ~34s-per-command tax)
|
|
8
|
+
* unless muzzled by `CLEO_DISABLE_EXODUS_ON_OPEN`. `cleo exodus migrate` would
|
|
9
|
+
* complete the archival — but it routes through the heavy `verifyMigration`
|
|
10
|
+
* digest, which OOMs on a 1.7 GB-class legacy `brain.db`.
|
|
11
|
+
*
|
|
12
|
+
* `sealExodus` closes the loop WITHOUT a destructive re-migrate and WITHOUT the
|
|
13
|
+
* OOM digest: it gates on the memory-safe COUNT(*) deficit check
|
|
14
|
+
* ({@link computeCountParity}) — the SAME gate (`target >= source`) the archive
|
|
15
|
+
* path enforces — and, only when no rows are missing, archives the consumed
|
|
16
|
+
* legacy sources (reversible move) and writes the per-scope completion marker.
|
|
17
|
+
*
|
|
18
|
+
* @task T11837 (fleet-flow surface — seal an already-migrated install)
|
|
19
|
+
* @epic T11833 (EP-EXODUS-FLEET-HARDENING)
|
|
20
|
+
* @saga T11242 (SG-DB-SUBSTRATE-V2)
|
|
21
|
+
*/
|
|
22
|
+
import { getLogger } from '../../logger.js';
|
|
23
|
+
import { archiveSourceDb, hasExodusCompleteMarker, writeExodusCompleteMarker } from './archive.js';
|
|
24
|
+
import { computeCountParity } from './count-parity.js';
|
|
25
|
+
const log = getLogger('exodus-seal');
|
|
26
|
+
/** Resolve a {@link SealScopeArg} to the concrete scopes it covers. */
|
|
27
|
+
function resolveScopes(arg) {
|
|
28
|
+
return arg === 'both' ? ['project', 'global'] : [arg];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Seal one or more scopes of an already-migrated install: gate on COUNT(*) parity
|
|
32
|
+
* (no digest), then archive the consumed legacy sources + write the completion
|
|
33
|
+
* marker. Refuses (archives nothing) if ANY table has a deficit — the data is not
|
|
34
|
+
* fully in `cleo.db` and the operator must run `cleo exodus migrate` first.
|
|
35
|
+
*
|
|
36
|
+
* Idempotent + reversible: archiving is a `rename` (never delete) and a re-seal
|
|
37
|
+
* over an already-sealed scope simply refreshes the marker.
|
|
38
|
+
*
|
|
39
|
+
* @param plan - The exodus plan (`buildExodusPlan(cwd)`).
|
|
40
|
+
* @param scopeArg - Which scope(s) to seal.
|
|
41
|
+
* @param cwd - Working directory used to resolve the project dir.
|
|
42
|
+
* @returns A {@link SealResult}.
|
|
43
|
+
*
|
|
44
|
+
* @task T11837
|
|
45
|
+
*/
|
|
46
|
+
export function sealExodus(plan, scopeArg, cwd) {
|
|
47
|
+
// Memory-safe gate — NEVER the heavy verifyMigration digest (this whole epic
|
|
48
|
+
// exists to avoid OOMing it on a 1.7 GB-class legacy brain.db).
|
|
49
|
+
const parity = computeCountParity(plan.sources, plan.projectDbPath, plan.globalDbPath);
|
|
50
|
+
if (!parity.ok) {
|
|
51
|
+
const refusedReason = `Refusing to seal: ${parity.deficits.length} table(s) have FEWER rows in the ` +
|
|
52
|
+
`consolidated cleo.db than the legacy source — the data is NOT fully migrated. Run ` +
|
|
53
|
+
`\`cleo exodus migrate\` first. Deficits: ${parity.deficits
|
|
54
|
+
.map((d) => `${d.targetTable}(${d.sourceCount}→${d.targetCount})`)
|
|
55
|
+
.join(', ')}`;
|
|
56
|
+
log.error({ deficits: parity.deficits.length }, `exodus seal refused — ${refusedReason}`);
|
|
57
|
+
return { ok: false, refusedReason, parity, scopes: [] };
|
|
58
|
+
}
|
|
59
|
+
const outcomes = [];
|
|
60
|
+
for (const scope of resolveScopes(scopeArg)) {
|
|
61
|
+
const alreadySealed = hasExodusCompleteMarker(scope, cwd);
|
|
62
|
+
const scopeSources = plan.sources.filter((s) => s.targetScope === scope);
|
|
63
|
+
const archived = scopeSources.map((s) => {
|
|
64
|
+
const r = archiveSourceDb(s, cwd);
|
|
65
|
+
return { name: r.name, action: r.action, archivedTo: r.archivedTo };
|
|
66
|
+
});
|
|
67
|
+
const markerPath = writeExodusCompleteMarker(scope, scopeSources.map((s) => s.name), cwd);
|
|
68
|
+
log.info({ scope, alreadySealed, archived: archived.filter((a) => a.action === 'archived').length }, `exodus seal: scope '${scope}' certified (count-parity verified, ${parity.checked} tables)`);
|
|
69
|
+
outcomes.push({ scope, alreadySealed, archived, markerPath });
|
|
70
|
+
}
|
|
71
|
+
return { ok: true, parity, scopes: outcomes };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=seal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal.js","sourceRoot":"","sources":["../../../src/store/exodus/seal.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,10 +97,33 @@ export interface ExodusPlan {
|
|
|
97
97
|
readonly sources: LegacyDbDescriptor[];
|
|
98
98
|
/** Combined size of all source DB files in bytes. */
|
|
99
99
|
readonly totalSourceBytes: number;
|
|
100
|
+
/**
|
|
101
|
+
* Size of the SINGLE largest source DB file in bytes. The right-sized disk
|
|
102
|
+
* preflight is driven by this (the staging copy only ever holds one source at
|
|
103
|
+
* a time before its lock is released), NOT by {@link totalSourceBytes} (T11838).
|
|
104
|
+
*/
|
|
105
|
+
readonly largestSourceBytes: number;
|
|
106
|
+
/**
|
|
107
|
+
* Right-sized free-disk requirement in bytes:
|
|
108
|
+
* `STAGING_HEADROOM_FACTOR * largestSourceBytes + consolidatedEstimate`, where
|
|
109
|
+
* `consolidatedEstimate ≈ totalSourceBytes` (all source rows land in the
|
|
110
|
+
* consolidated cleo.db). Replaces the historical `3 * totalSourceBytes`
|
|
111
|
+
* over-estimate that blocked large-fleet migrations (T11838).
|
|
112
|
+
*/
|
|
113
|
+
readonly requiredBytes: number;
|
|
100
114
|
/** Available disk bytes on the target filesystem. */
|
|
101
115
|
readonly availableBytes: number;
|
|
102
|
-
/** Whether the
|
|
116
|
+
/** Whether the right-sized free-disk pre-flight passes. */
|
|
103
117
|
readonly diskPreflight: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Per-source byte threshold above which the full {@link LegacyDbDescriptor}
|
|
120
|
+
* staging `copyFileSync` backup is SKIPPED (T11838). The legacy source is
|
|
121
|
+
* archived (renamed into `_archive/`), not deleted, on success — so a redundant
|
|
122
|
+
* full-file backup of a large source only doubles its disk + I/O cost. Sources
|
|
123
|
+
* at or below this threshold still get the staging backup (cheap rollback
|
|
124
|
+
* safety for the common small-fleet case).
|
|
125
|
+
*/
|
|
126
|
+
readonly stagingCopyThresholdBytes: number;
|
|
104
127
|
/** Absolute path to the staging directory. */
|
|
105
128
|
readonly stagingDir: string;
|
|
106
129
|
/** Whether a staging directory from a previous run was found (resume mode). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACvC,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACvC,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,EAAG,wCAAiD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/store/exodus/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/store/exodus/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA4LH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,wCAAiD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-migration.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/verify-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,OAAO,KAAK,EAIV,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-migration.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/verify-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,OAAO,KAAK,EAIV,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAolBlE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACjC,qBAAqB,CA+RvB"}
|
|
@@ -45,7 +45,7 @@ import { createRequire } from 'node:module';
|
|
|
45
45
|
import { MIGRATION_ENUM_DRIFT_SAMPLE_LIMIT } from '@cleocode/contracts';
|
|
46
46
|
import { getLogger } from '../../logger.js';
|
|
47
47
|
import { openCleoDbSnapshot } from '../open-cleo-db.js';
|
|
48
|
-
import { buildDigestExpr, detectIsoGlobColumns } from './column-transforms.js';
|
|
48
|
+
import { buildDigestExpr, detectIsoGlobColumns, } from './column-transforms.js';
|
|
49
49
|
import { resolveConsolidatedTableName, resolveTableTargetScope } from './table-name-map.js';
|
|
50
50
|
const log = getLogger('verify-migration');
|
|
51
51
|
const _require = createRequire(import.meta.url);
|
|
@@ -109,6 +109,22 @@ function orderByClause(db, tableName) {
|
|
|
109
109
|
* @returns `{ count, hash }` for the table.
|
|
110
110
|
*/
|
|
111
111
|
function computeTableDigest(db, tableName, columns, transform) {
|
|
112
|
+
// Row count — a cheap, set-based `COUNT(*)` that never materialises rows.
|
|
113
|
+
//
|
|
114
|
+
// This is the value the data-continuity gate ({@link isDataContinuityOk})
|
|
115
|
+
// consumes to decide deficit/surplus, so it MUST stay independent of the heavy
|
|
116
|
+
// content digest below: the migrate-time verify can then pass/fail on counts
|
|
117
|
+
// alone even when the digest is large or streaming-slow (T11834).
|
|
118
|
+
let count = 0;
|
|
119
|
+
try {
|
|
120
|
+
const row = db.prepare(`SELECT COUNT(*) AS c FROM "${tableName}"`).get();
|
|
121
|
+
count = Number(row?.c ?? 0);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
125
|
+
log.warn({ tableName, err: msg }, 'computeTableDigest: COUNT(*) failed (possibly a virtual/FTS table) — treating as 0 rows');
|
|
126
|
+
return { count: 0, hash: '' };
|
|
127
|
+
}
|
|
112
128
|
const { createHash } = _require('node:crypto');
|
|
113
129
|
const hasher = createHash('sha256');
|
|
114
130
|
const orderBy = orderByClause(db, tableName);
|
|
@@ -121,7 +137,8 @@ function computeTableDigest(db, tableName, columns, transform) {
|
|
|
121
137
|
// SOURCE side: route the raw value through the SAME transform migrate
|
|
122
138
|
// applied, aliased back to `c` so the row key matches the target side.
|
|
123
139
|
const srcType = transform.srcTypeByCol.get(c) ?? '';
|
|
124
|
-
const
|
|
140
|
+
const tgtCol = transform.tgtColByCol.get(c);
|
|
141
|
+
const expr = buildDigestExpr(transform.targetTableName, c, srcType, transform.isoGlobCols, tgtCol);
|
|
125
142
|
return `${expr} AS "${c}"`;
|
|
126
143
|
})
|
|
127
144
|
.join(', ');
|
|
@@ -129,33 +146,34 @@ function computeTableDigest(db, tableName, columns, transform) {
|
|
|
129
146
|
else {
|
|
130
147
|
selectClause = '*';
|
|
131
148
|
}
|
|
132
|
-
|
|
149
|
+
// Content digest — STREAMED row-by-row through the statement iterator so peak
|
|
150
|
+
// heap stays bounded by ONE row regardless of table size (T11834).
|
|
151
|
+
//
|
|
152
|
+
// The prior implementation called `.all()`, materialising the ENTIRE table
|
|
153
|
+
// (SOURCE *and* TARGET) into a JS array — a multi-hundred-MB-to-GB allocation
|
|
154
|
+
// on a 697K-row / 1.7 GB-class table (e.g. `brain_weight_history`) that OOM'd
|
|
155
|
+
// the migrate-time verify and rolled back an otherwise-lossless cutover. The
|
|
156
|
+
// digest is a NON-FATAL diagnostic; the gate is driven by the `COUNT(*)` parity
|
|
157
|
+
// above + introduced-FK orphans, never this hash.
|
|
158
|
+
//
|
|
159
|
+
// Canonicalise each row's property order before hashing (T11782 · FIX A): pass
|
|
160
|
+
// the SORTED key array as `JSON.stringify`'s replacer so identical rows digest
|
|
161
|
+
// identically regardless of the driver's column-materialisation order on the
|
|
162
|
+
// two snapshots (otherwise a false `hashMatch === false`).
|
|
133
163
|
try {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
164
|
+
const stmt = db.prepare(`SELECT ${selectClause} FROM "${tableName}" ORDER BY ${orderBy}`);
|
|
165
|
+
for (const row of stmt.iterate()) {
|
|
166
|
+
const rowObj = row;
|
|
167
|
+
hasher.update(JSON.stringify(rowObj, Object.keys(rowObj).sort()));
|
|
168
|
+
}
|
|
137
169
|
}
|
|
138
170
|
catch (err) {
|
|
139
171
|
const msg = err instanceof Error ? err.message : String(err);
|
|
140
|
-
log.warn({ tableName, err: msg }, 'computeTableDigest: SELECT failed (possibly a virtual/FTS table) —
|
|
141
|
-
return { count
|
|
142
|
-
}
|
|
143
|
-
// Canonicalise each row's property order before hashing (T11782 · FIX A).
|
|
144
|
-
//
|
|
145
|
-
// `JSON.stringify(row)` serialises object keys in the SQLite driver's row
|
|
146
|
-
// property-insertion order, which is NOT guaranteed identical between the
|
|
147
|
-
// SOURCE snapshot and the TARGET snapshot for the same logical row (the two
|
|
148
|
-
// handles may materialise columns in a different order). Identical data would
|
|
149
|
-
// then digest to a DIFFERENT hash, producing a false `hashMatch === false`
|
|
150
|
-
// and — historically — false-negative aborts. Passing the SORTED key array as
|
|
151
|
-
// `JSON.stringify`'s `replacer` forces a canonical, order-independent
|
|
152
|
-
// serialisation so identical rows always digest identically.
|
|
153
|
-
for (const row of rows) {
|
|
154
|
-
const rowObj = row;
|
|
155
|
-
hasher.update(JSON.stringify(rowObj, Object.keys(rowObj).sort()));
|
|
172
|
+
log.warn({ tableName, err: msg }, 'computeTableDigest: streamed SELECT failed (possibly a virtual/FTS table) — digest skipped (COUNT(*) parity still enforced)');
|
|
173
|
+
return { count, hash: '' };
|
|
156
174
|
}
|
|
157
175
|
return {
|
|
158
|
-
count
|
|
176
|
+
count,
|
|
159
177
|
hash: hasher.digest('hex').slice(0, 32),
|
|
160
178
|
};
|
|
161
179
|
}
|
|
@@ -184,8 +202,10 @@ function sharedColumnsSorted(srcDb, srcTable, tgtDb, tgtTable) {
|
|
|
184
202
|
}
|
|
185
203
|
/**
|
|
186
204
|
* Build the source-side {@link DigestTransformSpec} for a source→target table
|
|
187
|
-
* pair: the source column type affinities
|
|
188
|
-
*
|
|
205
|
+
* pair: the source column type affinities, the target's ISO-GLOB columns, and
|
|
206
|
+
* the target column metadata (NOT-NULL flag + default + affinity), keyed by the
|
|
207
|
+
* consolidated target name (the transform lookup key). The target metadata
|
|
208
|
+
* drives the NULL→NOT-NULL-default `COALESCE` mirroring (T11836).
|
|
189
209
|
*
|
|
190
210
|
* Returns `undefined` (raw digest, no transform) when the source `PRAGMA
|
|
191
211
|
* table_info` cannot be read — best-effort, biased to surfacing a real
|
|
@@ -201,7 +221,14 @@ function buildSourceDigestTransform(srcDb, srcTable, tgtDb, targetTableName) {
|
|
|
201
221
|
try {
|
|
202
222
|
const srcTypeByCol = new Map(srcDb.prepare(`PRAGMA table_info("${srcTable}")`).all().map((r) => [r.name, r.type]));
|
|
203
223
|
const isoGlobCols = detectIsoGlobColumns(tgtDb, targetTableName);
|
|
204
|
-
|
|
224
|
+
// Target column metadata (notnull + dflt_value + type) — drives the
|
|
225
|
+
// NULL→NOT-NULL-default COALESCE migrate applies, so a stored type default
|
|
226
|
+
// for a NULL source value digests as a MATCH (T11836).
|
|
227
|
+
const tgtColByCol = new Map(tgtDb.prepare(`PRAGMA table_info("${targetTableName}")`).all().map((r) => [
|
|
228
|
+
r.name,
|
|
229
|
+
{ notnull: r.notnull, dflt_value: r.dflt_value, type: r.type },
|
|
230
|
+
]));
|
|
231
|
+
return { targetTableName, srcTypeByCol, isoGlobCols, tgtColByCol };
|
|
205
232
|
}
|
|
206
233
|
catch {
|
|
207
234
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-migration.js","sourceRoot":"","sources":["../../../src/store/exodus/verify-migration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify-migration.js","sourceRoot":"","sources":["../../../src/store/exodus/verify-migration.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/add.d.ts
CHANGED
|
@@ -60,6 +60,19 @@ export interface AddTaskOptions {
|
|
|
60
60
|
* @task T1633
|
|
61
61
|
*/
|
|
62
62
|
forceDuplicate?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Bypass the T11811 write-time containment invariant (orphan / terminal-parent
|
|
65
|
+
* / wrong-tier rejection).
|
|
66
|
+
*
|
|
67
|
+
* MUST be set ONLY by historical data-movement paths — exodus migration,
|
|
68
|
+
* `cleo import`, restore/JSON-merge replay — which legitimately re-insert
|
|
69
|
+
* rows that predate the strict-spine rule (the fleet still carries legacy
|
|
70
|
+
* orphans). Agent-facing `cleo add` / `add-batch` MUST NOT set this; the
|
|
71
|
+
* invariant is the whole point of the guard for net-new work.
|
|
72
|
+
*
|
|
73
|
+
* @task T11811
|
|
74
|
+
*/
|
|
75
|
+
skipContainmentInvariant?: boolean;
|
|
63
76
|
}
|
|
64
77
|
/** Result of adding a task. */
|
|
65
78
|
export interface AddTaskResult {
|
package/dist/tasks/add.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/tasks/add.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAEV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/tasks/add.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/add.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { randomBytes } from 'node:crypto';
|
|
8
8
|
// setMetaValue now called via tx.setMetaValue inside transaction (T023)
|
|
9
|
-
import { ExitCode, isAllowedWorkGraphParentType, TASK_STATUSES } from '@cleocode/contracts';
|
|
9
|
+
import { ExitCode, isAllowedWorkGraphParentType, TASK_STATUSES, TERMINAL_TASK_STATUSES, } from '@cleocode/contracts';
|
|
10
10
|
import { loadConfig } from '../config.js';
|
|
11
11
|
import { CleoError } from '../errors.js';
|
|
12
12
|
import { resolveOrCwd } from '../paths.js';
|
|
@@ -15,7 +15,7 @@ import { requireActiveSession } from '../sessions/session-enforcement.js';
|
|
|
15
15
|
import { trackBackgroundOp } from '../store/background-ops.js';
|
|
16
16
|
import { acItemToText, applyAcPlan, buildAcRowId, buildChildProjectionAcText, buildFreshAcRows, childProjectionFreshnessFingerprint, childProjectionSourceKey, } from './ac-table.js';
|
|
17
17
|
import { createAcceptanceEnforcement } from './enforcement.js';
|
|
18
|
-
import { findEpicAncestor,
|
|
18
|
+
import { findEpicAncestor, validateChildStageCeiling, validateEpicCreation, } from './epic-enforcement.js';
|
|
19
19
|
import { resolveHierarchyPolicy } from './hierarchy-policy.js';
|
|
20
20
|
import { resolveDefaultPipelineStage, validatePipelineStage } from './pipeline-stage.js';
|
|
21
21
|
/** Normalize AC arrays once so legacy JSON, AC rows, and projections stay aligned. */
|
|
@@ -524,23 +524,34 @@ export async function addTask(options, cwd, accessor) {
|
|
|
524
524
|
fix: 'Provide --desc with a description different from the title',
|
|
525
525
|
});
|
|
526
526
|
}
|
|
527
|
-
// Orphan prevention (T101
|
|
528
|
-
//
|
|
529
|
-
//
|
|
527
|
+
// Orphan prevention (T101 → hardened by T11811 AC1).
|
|
528
|
+
//
|
|
529
|
+
// Write-time containment invariant — the strict-spine rule (owner decision 1):
|
|
530
|
+
// EVERY net-new node must attach to a parent unless it is a `saga`. Only sagas
|
|
531
|
+
// may be roots. A `task` / `subtask` / `epic` with a null/absent parent is a
|
|
532
|
+
// NET-NEW ORPHAN and is HARD-REJECTED regardless of lifecycle mode — the prior
|
|
533
|
+
// strict-mode-only gate let advisory-mode installs silently manufacture the
|
|
534
|
+
// exact orphan the doctor/CI gate then flags.
|
|
535
|
+
//
|
|
536
|
+
// Escape hatch: historical data-movement paths (exodus, import, restore replay)
|
|
537
|
+
// set `skipContainmentInvariant` so legacy rows that predate the rule are not
|
|
538
|
+
// self-blocked. Dry-run is exempt (no data is written).
|
|
539
|
+
//
|
|
540
|
+
// The effective type mirrors the later inference: an unset type with no parent
|
|
541
|
+
// resolves to `task`, so a bare `cleo add "X"` (no parent, no type) is rejected.
|
|
530
542
|
const parentId = options.parentId ?? null;
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
}
|
|
543
|
+
const effectiveRootType = options.type ?? 'task';
|
|
544
|
+
if (!options.dryRun &&
|
|
545
|
+
!options.skipContainmentInvariant &&
|
|
546
|
+
!parentId &&
|
|
547
|
+
effectiveRootType !== 'saga') {
|
|
548
|
+
issues.push({
|
|
549
|
+
field: 'parentId',
|
|
550
|
+
message: `A ${effectiveRootType} must attach to a parent — only a saga may be a root ` +
|
|
551
|
+
`(strict-spine containment, T11811). Use --parent <id> to file it under the ` +
|
|
552
|
+
`correct container (saga→epic, epic→task, task→subtask).`,
|
|
553
|
+
fix: 'cleo add "Task title" --parent T### --acceptance "AC1|AC2|AC3"',
|
|
554
|
+
});
|
|
544
555
|
}
|
|
545
556
|
// Always use accessor (SQLite canonical storage per ADR-006)
|
|
546
557
|
const dataAccessor = accessor ?? (await (await import('../store/data-accessor.js')).getTaskAccessor(cwd));
|
|
@@ -686,6 +697,27 @@ export async function addTask(options, cwd, accessor) {
|
|
|
686
697
|
details: { field: 'parentId', actual: parentId },
|
|
687
698
|
});
|
|
688
699
|
}
|
|
700
|
+
// T11811 AC1 — reject filing NET-NEW work under an IRREVERSIBLY-TERMINAL
|
|
701
|
+
// parent (`cancelled` / `archived`). A child added under such a parent is
|
|
702
|
+
// born stranded — the parent can never be auto-reopened to satisfy it.
|
|
703
|
+
//
|
|
704
|
+
// `done` is deliberately EXCLUDED: PM-Core V2 design-point 5 (saga T10538)
|
|
705
|
+
// reopens a `done` parent (and done ancestors) when a child is filed under
|
|
706
|
+
// it, so the child is NOT stranded — see the reopen logic below. Mirrors the
|
|
707
|
+
// `s !== 'done'` carve-out already in satisfies-validator.ts. Skip entirely
|
|
708
|
+
// for the historical-replay escape hatch (legacy rows reference terminals).
|
|
709
|
+
const parentIsIrreversiblyTerminal = TERMINAL_TASK_STATUSES.has(parentTask.status) && parentTask.status !== 'done';
|
|
710
|
+
if (!options.skipContainmentInvariant && parentIsIrreversiblyTerminal) {
|
|
711
|
+
throw new CleoError(ExitCode.VALIDATION_ERROR, `Cannot file new work under ${parentId}: its status is '${parentTask.status}' (terminal). ` +
|
|
712
|
+
`A child under a terminal parent is born stranded.`, {
|
|
713
|
+
fix: `Pick a non-terminal parent (cleo find), or reopen ${parentId} first (cleo restore task ${parentId}).`,
|
|
714
|
+
details: {
|
|
715
|
+
field: 'parentId',
|
|
716
|
+
expected: 'non-terminal parent (pending|active|blocked|done)',
|
|
717
|
+
actual: parentTask.status,
|
|
718
|
+
},
|
|
719
|
+
});
|
|
720
|
+
}
|
|
689
721
|
parentTaskForProjection = parentTask;
|
|
690
722
|
// Read hierarchy limits from config via policy module
|
|
691
723
|
const config = await loadConfig(cwd);
|