@cleocode/core 2026.11.1-canary.2 → 2026.11.1-canary.3
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/README.md +2 -0
- package/binaries/README.md +30 -10
- package/dist/.source-stamp.json +1 -1
- package/dist/audit/reconstruct.d.ts.map +1 -1
- package/dist/audit/reconstruct.js +3 -13
- package/dist/audit/reconstruct.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +3 -9
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/docs/docs-ops.d.ts +27 -5
- package/dist/docs/docs-ops.d.ts.map +1 -1
- package/dist/docs/docs-ops.js +149 -17
- package/dist/docs/docs-ops.js.map +1 -1
- package/dist/docs/docs-read-model.d.ts +41 -14
- package/dist/docs/docs-read-model.d.ts.map +1 -1
- package/dist/docs/docs-read-model.js +13 -99
- package/dist/docs/docs-read-model.js.map +1 -1
- package/dist/docs/doctor.d.ts +39 -0
- package/dist/docs/doctor.d.ts.map +1 -1
- package/dist/docs/doctor.js +110 -28
- package/dist/docs/doctor.js.map +1 -1
- package/dist/docs/modernize/apply.d.ts +16 -2
- package/dist/docs/modernize/apply.d.ts.map +1 -1
- package/dist/docs/modernize/apply.js +66 -23
- package/dist/docs/modernize/apply.js.map +1 -1
- package/dist/docs/modernize/guard.d.ts +25 -7
- package/dist/docs/modernize/guard.d.ts.map +1 -1
- package/dist/docs/modernize/guard.js +52 -12
- package/dist/docs/modernize/guard.js.map +1 -1
- package/dist/docs/modernize/index.d.ts +11 -2
- package/dist/docs/modernize/index.d.ts.map +1 -1
- package/dist/docs/modernize/index.js +20 -10
- package/dist/docs/modernize/index.js.map +1 -1
- package/dist/docs/modernize/plan.d.ts.map +1 -1
- package/dist/docs/modernize/plan.js +17 -1
- package/dist/docs/modernize/plan.js.map +1 -1
- package/dist/docs/modernize/rules.d.ts +82 -8
- package/dist/docs/modernize/rules.d.ts.map +1 -1
- package/dist/docs/modernize/rules.js +195 -28
- package/dist/docs/modernize/rules.js.map +1 -1
- package/dist/docs/publish-pr.d.ts.map +1 -1
- package/dist/docs/publish-pr.js +3 -1
- package/dist/docs/publish-pr.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +12 -0
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/git/work-tree.d.ts +24 -0
- package/dist/git/work-tree.d.ts.map +1 -1
- package/dist/git/work-tree.js +12 -1
- package/dist/git/work-tree.js.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/paths.d.ts +20 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +26 -0
- package/dist/paths.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +7 -3
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +77 -14
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/cut.d.ts.map +1 -1
- package/dist/release/cut.js +37 -5
- package/dist/release/cut.js.map +1 -1
- package/dist/release/engine-ops.d.ts.map +1 -1
- package/dist/release/engine-ops.js +10 -4
- package/dist/release/engine-ops.js.map +1 -1
- package/dist/release/plan.d.ts +3 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +4 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/reconcile.d.ts +3 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +18 -6
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/release-published.d.ts +27 -0
- package/dist/release/release-published.d.ts.map +1 -0
- package/dist/release/release-published.js +35 -0
- package/dist/release/release-published.js.map +1 -0
- package/dist/remote/index.js +1 -1
- package/dist/remote/index.js.map +1 -1
- package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
- package/dist/scaffold/ensure-dirs.js +8 -6
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/selfimprove/draft-pr.d.ts.map +1 -1
- package/dist/selfimprove/draft-pr.js +4 -1
- package/dist/selfimprove/draft-pr.js.map +1 -1
- package/dist/skills/propose-patch.d.ts.map +1 -1
- package/dist/skills/propose-patch.js +4 -1
- package/dist/skills/propose-patch.js.map +1 -1
- package/dist/store/git-checkpoint.d.ts +11 -1
- package/dist/store/git-checkpoint.d.ts.map +1 -1
- package/dist/store/git-checkpoint.js +14 -3
- package/dist/store/git-checkpoint.js.map +1 -1
- package/dist/system/dependencies.d.ts +22 -0
- package/dist/system/dependencies.d.ts.map +1 -1
- package/dist/system/dependencies.js +49 -2
- package/dist/system/dependencies.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +3 -1
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +39 -20
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +4 -3
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +33 -5
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/evidence.d.ts +8 -2
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +39 -11
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-notes.d.ts +17 -0
- package/dist/tasks/gate-notes.d.ts.map +1 -1
- package/dist/tasks/gate-notes.js.map +1 -1
- package/dist/tasks/manifest-scope.d.ts +42 -5
- package/dist/tasks/manifest-scope.d.ts.map +1 -1
- package/dist/tasks/manifest-scope.js +162 -9
- package/dist/tasks/manifest-scope.js.map +1 -1
- package/dist/tasks/merge-close.d.ts +25 -2
- package/dist/tasks/merge-close.d.ts.map +1 -1
- package/dist/tasks/merge-close.js +30 -2
- package/dist/tasks/merge-close.js.map +1 -1
- package/dist/tasks/verification-policy.d.ts +12 -0
- package/dist/tasks/verification-policy.d.ts.map +1 -1
- package/dist/tasks/verification-policy.js +13 -0
- package/dist/tasks/verification-policy.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -0
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +112 -0
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +4 -2
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/worktree/merged-cleanup.d.ts +10 -0
- package/dist/worktree/merged-cleanup.d.ts.map +1 -1
- package/dist/worktree/merged-cleanup.js +12 -1
- package/dist/worktree/merged-cleanup.js.map +1 -1
- package/package.json +12 -12
- package/templates/git-hooks/legacy-hashes.json +2 -1
- package/templates/git-hooks/pre-commit +43 -11
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DocsReadModel — unified read-side query surface for the CLEO docs system.
|
|
3
|
-
*
|
|
4
|
-
* Abstracts the scattered document surfaces (the `attachments` doc registry,
|
|
5
|
-
* manifest.db blobs, and the `docs_publications` store ledger) behind one
|
|
6
|
-
* coherent read API. Agents and CLI command handlers query through this
|
|
7
|
-
* model instead of navigating the individual stores directly.
|
|
8
|
-
*
|
|
9
|
-
* Lookup axes:
|
|
10
|
-
* - slug → resolve by stable human-readable slug (from attachments.slug)
|
|
11
|
-
* - owner → resolve all docs owned by a task/session/observation
|
|
12
|
-
* - attachmentId → resolve by attachment UUID or SHA-256 content address
|
|
13
|
-
* - blobName → resolve by blob name within an owner's manifest
|
|
14
|
-
* - latest → resolve the latest version for a given slug
|
|
15
|
-
*
|
|
16
|
-
* The read model also surfaces publication status and drift classification
|
|
17
|
-
* from the `docs_publications` store ledger, which is the canonical record
|
|
18
|
-
* of which blobs have been published to git-tracked paths and whether those
|
|
19
|
-
* published files are in-sync with the backing blob store.
|
|
20
|
-
*
|
|
21
|
-
* Content reads are blob-store ONLY (T13362): the legacy
|
|
22
|
-
* `.cleo/attachments/sha256/` byte tree has no fallback path here — docs
|
|
23
|
-
* whose bytes were never mirrored/consolidated into `.cleo/blobs/blobs/`
|
|
24
|
-
* report `no-content` until migrated.
|
|
25
|
-
*
|
|
26
|
-
* @task T11049 (T10516-C2)
|
|
27
|
-
* @epic T10519 (T10516-C)
|
|
28
|
-
* @saga T10516 (SG-DOCS-CLI-SIMPLIFICATION)
|
|
29
|
-
* @see packages/core/src/store/attachment-store.ts (doc registry)
|
|
30
|
-
* @see packages/core/src/store/blob-ops.ts (manifest.db blobs via llmtxt)
|
|
31
|
-
* @see packages/core/src/docs/docs-ops.ts (publications ledger + status)
|
|
32
|
-
*/
|
|
33
|
-
import { createHash } from 'node:crypto';
|
|
34
1
|
import { getProjectRoot } from '../paths.js';
|
|
35
2
|
import { createAttachmentStore } from '../store/attachment-store.js';
|
|
36
3
|
import { blobList, blobRead, blobReadBySha } from '../store/blob-ops.js';
|
|
@@ -346,73 +313,20 @@ export class DocsReadModel {
|
|
|
346
313
|
/**
|
|
347
314
|
* Check publication status for all published docs.
|
|
348
315
|
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
316
|
+
* Delegates to {@link statusDocs} so `cleo docs status`, the doctor and
|
|
317
|
+
* every other caller share one drift classification (T14135), including the
|
|
318
|
+
* default-branch and unmerged-worktree cases.
|
|
319
|
+
*
|
|
320
|
+
* @param projectRootOverride - Store root (default: the model's project root).
|
|
321
|
+
* @param checkoutRoot - Where the mirror files are read (default: the store
|
|
322
|
+
* root); the invoking CLEO worktree when run from one (T14188).
|
|
352
323
|
*/
|
|
353
|
-
async status(projectRootOverride) {
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
}
|
|
359
|
-
const { readFile, stat } = await import('node:fs/promises');
|
|
360
|
-
const { resolve: resolvePathFn, isAbsolute: isAbs } = await import('node:path');
|
|
361
|
-
// Build blob sha cache from the manifest
|
|
362
|
-
const ownerCache = new Map();
|
|
363
|
-
async function getBlobSha(ownerId, blobName, ledgerSha) {
|
|
364
|
-
let perOwner = ownerCache.get(ownerId);
|
|
365
|
-
if (!perOwner) {
|
|
366
|
-
perOwner = new Map();
|
|
367
|
-
const rows = await blobList(ownerId, root).catch(() => []);
|
|
368
|
-
for (const row of rows)
|
|
369
|
-
perOwner.set(row.name, row.sha256);
|
|
370
|
-
ownerCache.set(ownerId, perOwner);
|
|
371
|
-
}
|
|
372
|
-
return perOwner.get(blobName) ?? ledgerSha;
|
|
373
|
-
}
|
|
374
|
-
const items = [];
|
|
375
|
-
for (const row of publications) {
|
|
376
|
-
const filePath = isAbs(row.publishedPath)
|
|
377
|
-
? row.publishedPath
|
|
378
|
-
: resolvePathFn(root, row.publishedPath);
|
|
379
|
-
const blobSha = await getBlobSha(row.ownerId, row.blobName, row.lastBlobSha);
|
|
380
|
-
let fileSha = null;
|
|
381
|
-
let exists = false;
|
|
382
|
-
try {
|
|
383
|
-
await stat(filePath);
|
|
384
|
-
exists = true;
|
|
385
|
-
}
|
|
386
|
-
catch {
|
|
387
|
-
/* missing */
|
|
388
|
-
}
|
|
389
|
-
let drift;
|
|
390
|
-
if (exists) {
|
|
391
|
-
try {
|
|
392
|
-
const data = await readFile(filePath);
|
|
393
|
-
fileSha = createHash('sha256').update(data).digest('hex');
|
|
394
|
-
drift = fileSha === blobSha ? 'in-sync' : 'modified';
|
|
395
|
-
}
|
|
396
|
-
catch {
|
|
397
|
-
drift = 'deleted';
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
else {
|
|
401
|
-
drift = 'deleted';
|
|
402
|
-
}
|
|
403
|
-
items.push({
|
|
404
|
-
ownerId: row.ownerId,
|
|
405
|
-
blobName: row.blobName,
|
|
406
|
-
publishedPath: row.publishedPath,
|
|
407
|
-
blobSha,
|
|
408
|
-
fileSha,
|
|
409
|
-
drift,
|
|
410
|
-
});
|
|
411
|
-
}
|
|
412
|
-
return {
|
|
413
|
-
items,
|
|
414
|
-
allInSync: items.every((i) => i.drift === 'in-sync'),
|
|
415
|
-
};
|
|
324
|
+
async status(projectRootOverride, checkoutRoot) {
|
|
325
|
+
const { statusDocs } = await import('./docs-ops.js');
|
|
326
|
+
return statusDocs({
|
|
327
|
+
projectRoot: projectRootOverride ?? this.projectRoot,
|
|
328
|
+
...(checkoutRoot !== undefined ? { checkoutRoot } : {}),
|
|
329
|
+
});
|
|
416
330
|
}
|
|
417
331
|
// -----------------------------------------------------------------------
|
|
418
332
|
// Private: resolution helpers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-read-model.js","sourceRoot":"","sources":["../../src/docs/docs-read-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs-read-model.js","sourceRoot":"","sources":["../../src/docs/docs-read-model.ts"],"names":[],"mappings":"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"}
|
package/dist/docs/doctor.d.ts
CHANGED
|
@@ -152,6 +152,19 @@ export interface DocsDoctorDiagnostic {
|
|
|
152
152
|
/** True when `count` exceeded the detail cap. */
|
|
153
153
|
readonly truncated: boolean;
|
|
154
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* The diagnostic classes that carry a repair, accepted by
|
|
157
|
+
* {@link DocsDoctorOptions.only} to scope a run to some of them (T14174).
|
|
158
|
+
*
|
|
159
|
+
* @task T14174
|
|
160
|
+
*/
|
|
161
|
+
export declare const DOCS_DOCTOR_REPAIR_CLASSES: readonly ["dangling-pointers", "doc-version-skew", "empty-provenance", "wikilinks-drift", "legacy-blob-coverage", "conduit-history-gaps", "publication-ledger-drift"];
|
|
162
|
+
/**
|
|
163
|
+
* A diagnostic class that carries a repair.
|
|
164
|
+
*
|
|
165
|
+
* @task T14174
|
|
166
|
+
*/
|
|
167
|
+
export type DocsDoctorRepairClass = (typeof DOCS_DOCTOR_REPAIR_CLASSES)[number];
|
|
155
168
|
/**
|
|
156
169
|
* One planned or executed repair step.
|
|
157
170
|
*
|
|
@@ -187,6 +200,16 @@ export interface DocsDoctorReport {
|
|
|
187
200
|
readonly diagnostics: readonly DocsDoctorDiagnostic[];
|
|
188
201
|
/** Repair plan (dry run) or executed repairs (apply). */
|
|
189
202
|
readonly repairs: readonly DocsDoctorRepairAction[];
|
|
203
|
+
/**
|
|
204
|
+
* Repairs per class: `planned` lists every repair entry of the class,
|
|
205
|
+
* `applied` the ones written (0 on a dry run) (T14174).
|
|
206
|
+
*/
|
|
207
|
+
readonly repairCounts: Readonly<Partial<Record<DocsDoctorRepairClass, {
|
|
208
|
+
readonly planned: number;
|
|
209
|
+
readonly applied: number;
|
|
210
|
+
}>>>;
|
|
211
|
+
/** The classes this run was scoped to, or null for every class (T14174). */
|
|
212
|
+
readonly only: readonly DocsDoctorRepairClass[] | null;
|
|
190
213
|
/** One-line human summary. */
|
|
191
214
|
readonly summary: string;
|
|
192
215
|
}
|
|
@@ -210,12 +233,28 @@ export interface DocsDoctorOptions {
|
|
|
210
233
|
readonly repair?: boolean;
|
|
211
234
|
/** Age threshold (days) for the `stale-drafts` diagnostic. Default 30. */
|
|
212
235
|
readonly olderThanDays?: number;
|
|
236
|
+
/**
|
|
237
|
+
* Scope the run to these repair classes ({@link DOCS_DOCTOR_REPAIR_CLASSES})
|
|
238
|
+
* (T14174): only their repairs are planned and, under {@link apply},
|
|
239
|
+
* written; every other class is left untouched. Diagnostics still report
|
|
240
|
+
* every class. An unknown name is refused with `E_DOCS_DOCTOR_UNKNOWN_CLASS`.
|
|
241
|
+
* The wikilinks rebuild also runs for `empty-provenance`, since a provenance
|
|
242
|
+
* backfill changes the derived edges. Cannot be combined with {@link repair}.
|
|
243
|
+
*/
|
|
244
|
+
readonly only?: readonly string[];
|
|
213
245
|
/**
|
|
214
246
|
* Path to a backup artifact created within the last
|
|
215
247
|
* {@link DOCS_DOCTOR_BACKUP_MAX_AGE_MS} milliseconds (checked via mtime).
|
|
216
248
|
* Required when {@link apply} is true.
|
|
217
249
|
*/
|
|
218
250
|
readonly backupReceiptPath?: string;
|
|
251
|
+
/**
|
|
252
|
+
* Where the published mirrors are read and git is asked (T14188): the
|
|
253
|
+
* invoking checkout, so a run from a CLEO worktree compares the store
|
|
254
|
+
* against that worktree's docs/. The store, ledger and backups stay at the
|
|
255
|
+
* project root. Default: the project root.
|
|
256
|
+
*/
|
|
257
|
+
readonly checkoutRoot?: string;
|
|
219
258
|
}
|
|
220
259
|
/**
|
|
221
260
|
* Discriminated outcome of {@link runDocsDoctor}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/docs/doctor.js
CHANGED
|
@@ -115,6 +115,7 @@ import { docsAttachments } from '../store/tasks-schema.js';
|
|
|
115
115
|
import { applyConduitHistoryBackfill, planConduitHistoryBackfill, } from './conduit-history-backfill.js';
|
|
116
116
|
import { deriveDocLinks, isScannableTextMime, linksJsonOrNull, } from './derive-links.js';
|
|
117
117
|
import { DOCS_VERSIONING_AUDIT_FILE } from './docs-update.js';
|
|
118
|
+
import { assertCheckoutOfProject } from './modernize/guard.js';
|
|
118
119
|
import { deleteDocsPublication, readDocsPublications } from './publications-store.js';
|
|
119
120
|
import { deriveWikilinkEdges, rebuildDocsWikilinks } from './wikilinks.js';
|
|
120
121
|
/**
|
|
@@ -147,6 +148,25 @@ export const DOCS_DOCTOR_MAX_DETAIL_ITEMS = 50;
|
|
|
147
148
|
* @task T14117
|
|
148
149
|
*/
|
|
149
150
|
export const DOCS_DOCTOR_LEDGER_PRUNE_AUDIT_FILE = '.cleo/audit/docs-publications-prune.jsonl';
|
|
151
|
+
/**
|
|
152
|
+
* The diagnostic classes that carry a repair, accepted by
|
|
153
|
+
* {@link DocsDoctorOptions.only} to scope a run to some of them (T14174).
|
|
154
|
+
*
|
|
155
|
+
* @task T14174
|
|
156
|
+
*/
|
|
157
|
+
export const DOCS_DOCTOR_REPAIR_CLASSES = [
|
|
158
|
+
'dangling-pointers',
|
|
159
|
+
'doc-version-skew',
|
|
160
|
+
'empty-provenance',
|
|
161
|
+
'wikilinks-drift',
|
|
162
|
+
'legacy-blob-coverage',
|
|
163
|
+
'conduit-history-gaps',
|
|
164
|
+
'publication-ledger-drift',
|
|
165
|
+
];
|
|
166
|
+
/** Whether a diagnostic kind carries a repair (T14174). @internal */
|
|
167
|
+
function isRepairClass(kind) {
|
|
168
|
+
return DOCS_DOCTOR_REPAIR_CLASSES.includes(kind);
|
|
169
|
+
}
|
|
150
170
|
/**
|
|
151
171
|
* Parse a row's `attachment_json` defensively. Malformed JSON yields null —
|
|
152
172
|
* such rows are skipped by kind-scoped checks rather than failing the run.
|
|
@@ -435,12 +455,12 @@ function provePublicationGone(projectRoot, publishedPath, absPath) {
|
|
|
435
455
|
*
|
|
436
456
|
* @internal
|
|
437
457
|
*/
|
|
438
|
-
async function scanPublicationLedger(projectRoot, rows) {
|
|
458
|
+
async function scanPublicationLedger(projectRoot, rows, checkoutRoot) {
|
|
439
459
|
const ledger = await readDocsPublications(projectRoot);
|
|
440
460
|
if (ledger.length === 0)
|
|
441
461
|
return [];
|
|
442
462
|
const { statusDocs } = await import('./docs-ops.js');
|
|
443
|
-
const status = await statusDocs({ projectRoot });
|
|
463
|
+
const status = await statusDocs({ projectRoot, checkoutRoot });
|
|
444
464
|
const key = (r) => `${r.ownerId}\u0000${r.blobName}\u0000${r.publishedPath}`;
|
|
445
465
|
const recordByKey = new Map(ledger.map((r) => [key(r), r]));
|
|
446
466
|
const attachmentShas = new Set(rows.map((r) => r.sha256));
|
|
@@ -461,8 +481,8 @@ async function scanPublicationLedger(projectRoot, rows) {
|
|
|
461
481
|
continue;
|
|
462
482
|
const absPath = isAbsolute(record.publishedPath)
|
|
463
483
|
? record.publishedPath
|
|
464
|
-
: resolve(
|
|
465
|
-
const rel = relative(
|
|
484
|
+
: resolve(checkoutRoot, record.publishedPath);
|
|
485
|
+
const rel = relative(checkoutRoot, absPath);
|
|
466
486
|
const outsideRoot = rel.startsWith('..') || isAbsolute(rel);
|
|
467
487
|
if (item.drift === 'modified') {
|
|
468
488
|
const storeMoved = item.fileSha === record.lastBlobSha;
|
|
@@ -480,7 +500,7 @@ async function scanPublicationLedger(projectRoot, rows) {
|
|
|
480
500
|
}
|
|
481
501
|
const shas = new Set([record.lastBlobSha, item.blobSha]);
|
|
482
502
|
const protectedElsewhere = [...shas].every((sha) => attachmentShas.has(sha) || (liveLedgerShas.get(sha) ?? 0) > 0);
|
|
483
|
-
const proof = provePublicationGone(
|
|
503
|
+
const proof = provePublicationGone(checkoutRoot, record.publishedPath, absPath);
|
|
484
504
|
const blob = record.lastBlobSha.slice(0, 12);
|
|
485
505
|
let action;
|
|
486
506
|
let detail;
|
|
@@ -516,7 +536,7 @@ async function scanPublicationLedger(projectRoot, rows) {
|
|
|
516
536
|
*
|
|
517
537
|
* @internal
|
|
518
538
|
*/
|
|
519
|
-
async function scanStore(projectRoot, db, olderThanDays) {
|
|
539
|
+
async function scanStore(projectRoot, db, olderThanDays, checkoutRoot) {
|
|
520
540
|
const rows = await db.select().from(docsAttachments).all();
|
|
521
541
|
const payloadById = new Map();
|
|
522
542
|
for (const row of rows)
|
|
@@ -721,7 +741,7 @@ async function scanStore(projectRoot, db, olderThanDays) {
|
|
|
721
741
|
// planner reads the audit file, the registry and (hash-verified) bytes,
|
|
722
742
|
// and writes nothing.
|
|
723
743
|
const conduitBackfill = await planConduitHistoryBackfill(projectRoot);
|
|
724
|
-
const ledger = await scanPublicationLedger(projectRoot, rows);
|
|
744
|
+
const ledger = await scanPublicationLedger(projectRoot, rows, checkoutRoot);
|
|
725
745
|
const ledgerItems = ledger.slice(0, DOCS_DOCTOR_MAX_DETAIL_ITEMS).map((f) => ({
|
|
726
746
|
ownerId: f.record.ownerId,
|
|
727
747
|
blobName: f.record.blobName,
|
|
@@ -866,18 +886,63 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
866
886
|
},
|
|
867
887
|
};
|
|
868
888
|
}
|
|
889
|
+
// T14174 — scope to some repair classes.
|
|
890
|
+
let only = null;
|
|
891
|
+
if (opts.only !== undefined) {
|
|
892
|
+
const valid = new Set(DOCS_DOCTOR_REPAIR_CLASSES);
|
|
893
|
+
const unknown = opts.only.filter((c) => !valid.has(c));
|
|
894
|
+
if (unknown.length > 0 || opts.only.length === 0) {
|
|
895
|
+
return {
|
|
896
|
+
ok: false,
|
|
897
|
+
error: {
|
|
898
|
+
// @sync-invariant none:input-shape an argument refusal before any repair write; nothing was written
|
|
899
|
+
code: 'E_DOCS_DOCTOR_UNKNOWN_CLASS',
|
|
900
|
+
message: `docs doctor: --only ${unknown.length > 0 ? `names unknown class(es) ${unknown.join(', ')}` : 'names no class'}; ` +
|
|
901
|
+
`valid classes: ${DOCS_DOCTOR_REPAIR_CLASSES.join(', ')}`,
|
|
902
|
+
},
|
|
903
|
+
};
|
|
904
|
+
}
|
|
905
|
+
if (repair) {
|
|
906
|
+
return {
|
|
907
|
+
ok: false,
|
|
908
|
+
error: {
|
|
909
|
+
// @sync-invariant none:input-shape a flag-combination refusal before any repair write; nothing was written
|
|
910
|
+
code: 'E_DOCS_DOCTOR_FLAG_CONFLICT',
|
|
911
|
+
message: 'docs doctor: --only and --repair cannot be combined — --repair is already scoped to ' +
|
|
912
|
+
'the legacy-blob backfill; use `--apply --only legacy-blob-coverage` instead.',
|
|
913
|
+
},
|
|
914
|
+
};
|
|
915
|
+
}
|
|
916
|
+
only = [...new Set(opts.only)].filter((c) => valid.has(c));
|
|
917
|
+
}
|
|
918
|
+
const inScope = (kind) => only === null || only.includes(kind);
|
|
919
|
+
const rebuildWikilinks = inScope('wikilinks-drift') || inScope('empty-provenance');
|
|
869
920
|
if (mutate) {
|
|
870
921
|
const refusal = checkBackupReceipt(opts.backupReceiptPath);
|
|
871
922
|
if (refusal)
|
|
872
923
|
return { ok: false, error: refusal };
|
|
873
924
|
}
|
|
874
925
|
const db = await getDb(projectRoot);
|
|
875
|
-
const
|
|
926
|
+
const checkoutRoot = opts.checkoutRoot ?? projectRoot;
|
|
927
|
+
try {
|
|
928
|
+
assertCheckoutOfProject(projectRoot, checkoutRoot);
|
|
929
|
+
}
|
|
930
|
+
catch (err) {
|
|
931
|
+
return {
|
|
932
|
+
ok: false,
|
|
933
|
+
error: {
|
|
934
|
+
// @sync-invariant none:input-shape a checkout of another repository is refused before any read or repair write
|
|
935
|
+
code: 'E_DOCS_DOCTOR_FOREIGN_CHECKOUT',
|
|
936
|
+
message: err instanceof Error ? err.message : String(err),
|
|
937
|
+
},
|
|
938
|
+
};
|
|
939
|
+
}
|
|
940
|
+
const pre = await scanStore(projectRoot, db, olderThanDays, checkoutRoot);
|
|
876
941
|
const repairs = [];
|
|
877
942
|
// T13653: in repair mode ONLY the blob backfill runs — apply mode plans it
|
|
878
943
|
// alongside the other repairs.
|
|
879
944
|
if (!repair) {
|
|
880
|
-
for (const { row, path } of pre.dangling.archivable) {
|
|
945
|
+
for (const { row, path } of inScope('dangling-pointers') ? pre.dangling.archivable : []) {
|
|
881
946
|
repairs.push({
|
|
882
947
|
kind: 'dangling-pointers',
|
|
883
948
|
action: 'archive-dangling',
|
|
@@ -887,7 +952,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
887
952
|
detail: `marked-dangling: local-file target missing (${path}) → lifecycle_status = 'archived'`,
|
|
888
953
|
});
|
|
889
954
|
}
|
|
890
|
-
for (const { row, path } of pre.dangling.clearable) {
|
|
955
|
+
for (const { row, path } of inScope('dangling-pointers') ? pre.dangling.clearable : []) {
|
|
891
956
|
repairs.push({
|
|
892
957
|
kind: 'dangling-pointers',
|
|
893
958
|
action: 'clear-stale-path',
|
|
@@ -898,7 +963,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
898
963
|
`(sha256 ${row.sha256.slice(0, 12)}…)`,
|
|
899
964
|
});
|
|
900
965
|
}
|
|
901
|
-
for (const { row, expected } of pre.skewed) {
|
|
966
|
+
for (const { row, expected } of inScope('doc-version-skew') ? pre.skewed : []) {
|
|
902
967
|
repairs.push({
|
|
903
968
|
kind: 'doc-version-skew',
|
|
904
969
|
action: 'set-doc-version',
|
|
@@ -908,7 +973,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
908
973
|
detail: `audit-note: docVersion ${row.docVersion} → ${expected} (audit log revisions + 1)`,
|
|
909
974
|
});
|
|
910
975
|
}
|
|
911
|
-
for (const { row, derived } of pre.backfillable) {
|
|
976
|
+
for (const { row, derived } of inScope('empty-provenance') ? pre.backfillable : []) {
|
|
912
977
|
const derivedCount = derived.topics.length + derived.relatedTasks.length;
|
|
913
978
|
repairs.push({
|
|
914
979
|
kind: 'empty-provenance',
|
|
@@ -921,7 +986,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
921
986
|
: 'no derivable topics or task mentions — columns stay NULL',
|
|
922
987
|
});
|
|
923
988
|
}
|
|
924
|
-
if (pre.needsWikilinksRebuild) {
|
|
989
|
+
if (pre.needsWikilinksRebuild && rebuildWikilinks) {
|
|
925
990
|
repairs.push({
|
|
926
991
|
kind: 'wikilinks-drift',
|
|
927
992
|
action: 'rebuild-wikilinks',
|
|
@@ -935,7 +1000,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
935
1000
|
// dry-run/apply mode; executed only under --apply (the --repair mode
|
|
936
1001
|
// stays the T13653 blob-backfill-only fast path). A complete doc with
|
|
937
1002
|
// unrecoverable gaps still gets an entry so the gap stays explained.
|
|
938
|
-
for (const plan of pre.conduitBackfill) {
|
|
1003
|
+
for (const plan of inScope('conduit-history-gaps') ? pre.conduitBackfill : []) {
|
|
939
1004
|
if (plan.complete && plan.gaps.length === 0)
|
|
940
1005
|
continue;
|
|
941
1006
|
if (plan.conflict) {
|
|
@@ -975,7 +1040,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
975
1040
|
}
|
|
976
1041
|
// T14117 — publication-ledger drift: prune protected deleted rows; every
|
|
977
1042
|
// other finding is a plan-only proposal.
|
|
978
|
-
for (const finding of pre.ledger) {
|
|
1043
|
+
for (const finding of inScope('publication-ledger-drift') ? pre.ledger : []) {
|
|
979
1044
|
repairs.push({
|
|
980
1045
|
kind: 'publication-ledger-drift',
|
|
981
1046
|
action: finding.action,
|
|
@@ -984,7 +1049,8 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
984
1049
|
});
|
|
985
1050
|
}
|
|
986
1051
|
}
|
|
987
|
-
|
|
1052
|
+
const blobBackfillable = inScope('legacy-blob-coverage') ? pre.blobBackfillable : [];
|
|
1053
|
+
for (const candidate of blobBackfillable) {
|
|
988
1054
|
repairs.push({
|
|
989
1055
|
kind: 'legacy-blob-coverage',
|
|
990
1056
|
action: 'backfill-blob-bytes',
|
|
@@ -1006,7 +1072,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1006
1072
|
.map((r, i) => ({ r, i }))
|
|
1007
1073
|
.filter(({ r }) => r.kind === 'legacy-blob-coverage' && r.action === 'backfill-blob-bytes')
|
|
1008
1074
|
.map(({ i }) => i);
|
|
1009
|
-
for (const [n, candidate] of
|
|
1075
|
+
for (const [n, candidate] of blobBackfillable.entries()) {
|
|
1010
1076
|
if (candidate.sourcePath === null)
|
|
1011
1077
|
continue;
|
|
1012
1078
|
const outcome = await backfillBlobStoreBytes(cleoDir, candidate.sha256, candidate.sourcePath);
|
|
@@ -1030,7 +1096,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1030
1096
|
// backfill above so the bytes the new rows address are mirrored first;
|
|
1031
1097
|
// annotate each repair entry with its executed outcome (zip by slug).
|
|
1032
1098
|
const conduitBySlug = new Map();
|
|
1033
|
-
for (const plan of pre.conduitBackfill) {
|
|
1099
|
+
for (const plan of inScope('conduit-history-gaps') ? pre.conduitBackfill : []) {
|
|
1034
1100
|
if (plan.toBackfill.length === 0 || plan.conflict)
|
|
1035
1101
|
continue;
|
|
1036
1102
|
const result = await applyConduitHistoryBackfill(projectRoot, plan);
|
|
@@ -1047,14 +1113,14 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1047
1113
|
detail: `${repair.detail} → executed: ${outcome.inserted} row(s) inserted, ${outcome.gaps} gap(s)`,
|
|
1048
1114
|
};
|
|
1049
1115
|
}
|
|
1050
|
-
for (const { row, expected } of pre.skewed) {
|
|
1116
|
+
for (const { row, expected } of inScope('doc-version-skew') ? pre.skewed : []) {
|
|
1051
1117
|
await db
|
|
1052
1118
|
.update(docsAttachments)
|
|
1053
1119
|
.set({ docVersion: expected })
|
|
1054
1120
|
.where(eq(docsAttachments.id, row.id))
|
|
1055
1121
|
.run();
|
|
1056
1122
|
}
|
|
1057
|
-
for (const { row, derived } of pre.backfillable) {
|
|
1123
|
+
for (const { row, derived } of inScope('empty-provenance') ? pre.backfillable : []) {
|
|
1058
1124
|
if (derived.topics.length + derived.relatedTasks.length === 0)
|
|
1059
1125
|
continue;
|
|
1060
1126
|
await db
|
|
@@ -1066,14 +1132,14 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1066
1132
|
.where(eq(docsAttachments.id, row.id))
|
|
1067
1133
|
.run();
|
|
1068
1134
|
}
|
|
1069
|
-
for (const { row } of pre.dangling.archivable) {
|
|
1135
|
+
for (const { row } of inScope('dangling-pointers') ? pre.dangling.archivable : []) {
|
|
1070
1136
|
await db
|
|
1071
1137
|
.update(docsAttachments)
|
|
1072
1138
|
.set({ lifecycleStatus: 'archived' })
|
|
1073
1139
|
.where(eq(docsAttachments.id, row.id))
|
|
1074
1140
|
.run();
|
|
1075
1141
|
}
|
|
1076
|
-
for (const { row, payload } of pre.dangling.clearable) {
|
|
1142
|
+
for (const { row, payload } of inScope('dangling-pointers') ? pre.dangling.clearable : []) {
|
|
1077
1143
|
const cleaned = { ...payload };
|
|
1078
1144
|
delete cleaned['path'];
|
|
1079
1145
|
await db
|
|
@@ -1082,10 +1148,12 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1082
1148
|
.where(eq(docsAttachments.id, row.id))
|
|
1083
1149
|
.run();
|
|
1084
1150
|
}
|
|
1085
|
-
if (pre.needsWikilinksRebuild) {
|
|
1151
|
+
if (pre.needsWikilinksRebuild && rebuildWikilinks) {
|
|
1086
1152
|
await rebuildDocsWikilinks({ projectRoot });
|
|
1087
1153
|
}
|
|
1088
|
-
const prunable =
|
|
1154
|
+
const prunable = inScope('publication-ledger-drift')
|
|
1155
|
+
? pre.ledger.filter((f) => f.prunable)
|
|
1156
|
+
: [];
|
|
1089
1157
|
if (prunable.length > 0) {
|
|
1090
1158
|
const auditPath = join(projectRoot, DOCS_DOCTOR_LEDGER_PRUNE_AUDIT_FILE);
|
|
1091
1159
|
mkdirSync(dirname(auditPath), { recursive: true });
|
|
@@ -1101,24 +1169,36 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1101
1169
|
// T13560: on a mutating run, re-scan so the envelope's diagnostics (and the
|
|
1102
1170
|
// summary computed from them) describe POST-repair state, consistent with
|
|
1103
1171
|
// a follow-up dry run. Dry runs keep the pre-repair scan.
|
|
1104
|
-
const post = mutate ? await scanStore(projectRoot, db, olderThanDays) : pre;
|
|
1172
|
+
const post = mutate ? await scanStore(projectRoot, db, olderThanDays, checkoutRoot) : pre;
|
|
1105
1173
|
const findings = post.diagnostics.reduce((sum, d) => sum + d.count, 0);
|
|
1106
1174
|
// T13727 — surface the conduit backfill counts in the one-line summary so
|
|
1107
1175
|
// operators see backfilled/skipped/gap per run without reading the report.
|
|
1108
1176
|
const conduitActionable = pre.conduitBackfill.filter((p) => !p.complete || p.gaps.length > 0 || p.conflict);
|
|
1109
1177
|
const conduitGapTotal = conduitActionable.reduce((s, p) => s + p.gaps.length, 0);
|
|
1110
1178
|
const conduitConflictTotal = conduitActionable.filter((p) => p.conflict).length;
|
|
1111
|
-
const conduitBackfillNote = repair || conduitActionable.length === 0
|
|
1179
|
+
const conduitBackfillNote = repair || !inScope('conduit-history-gaps') || conduitActionable.length === 0
|
|
1112
1180
|
? ''
|
|
1113
1181
|
: apply
|
|
1114
1182
|
? `; conduit history: ${conduitActionable.reduce((s, p) => s + p.toBackfill.length, 0)} version(s) backfilled across ${conduitActionable.length} doc(s) (${conduitGapTotal} gap(s) unrecoverable, ${conduitConflictTotal} conflict(s))`
|
|
1115
1183
|
: `; conduit history: ${conduitActionable.length} doc(s) need attention (${conduitActionable.reduce((s, p) => s + p.toBackfill.length, 0)} version(s) to backfill, ${conduitGapTotal} gap(s) unrecoverable, ${conduitConflictTotal} conflict(s))`;
|
|
1184
|
+
const repairCounts = {};
|
|
1185
|
+
for (const r of repairs) {
|
|
1186
|
+
const kind = r.kind;
|
|
1187
|
+
if (!isRepairClass(kind))
|
|
1188
|
+
continue;
|
|
1189
|
+
const entry = repairCounts[kind] ?? { planned: 0, applied: 0 };
|
|
1190
|
+
entry.planned += 1;
|
|
1191
|
+
if (r.applied)
|
|
1192
|
+
entry.applied += 1;
|
|
1193
|
+
repairCounts[kind] = entry;
|
|
1194
|
+
}
|
|
1195
|
+
const scopeNote = only === null ? '' : ` (only: ${only.join(', ')})`;
|
|
1116
1196
|
const summary = repair
|
|
1117
1197
|
? `docs doctor repaired ${repairs.filter((r) => r.applied).length} blob backfill(s); ` +
|
|
1118
1198
|
`${post.diagnostics.find((d) => d.kind === 'legacy-blob-coverage')?.count ?? 0} sha(s) still missing post-repair`
|
|
1119
1199
|
: apply
|
|
1120
|
-
? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s); ${findings} finding(s) remain post-repair${conduitBackfillNote}`
|
|
1121
|
-
: `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned (dry-run — pass --apply to execute)${conduitBackfillNote}`;
|
|
1200
|
+
? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s)${scopeNote}; ${findings} finding(s) remain post-repair${conduitBackfillNote}`
|
|
1201
|
+
: `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned${scopeNote} (dry-run — pass --apply to execute)${conduitBackfillNote}`;
|
|
1122
1202
|
return {
|
|
1123
1203
|
ok: true,
|
|
1124
1204
|
report: {
|
|
@@ -1127,6 +1207,8 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
|
|
|
1127
1207
|
backupReceiptPath: mutate ? (opts.backupReceiptPath ?? null) : null,
|
|
1128
1208
|
diagnostics: post.diagnostics,
|
|
1129
1209
|
repairs,
|
|
1210
|
+
repairCounts,
|
|
1211
|
+
only,
|
|
1130
1212
|
summary,
|
|
1131
1213
|
},
|
|
1132
1214
|
};
|