@cleocode/core 2026.10.12 → 2026.10.13-rc.ci.682

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  3. package/dist/cloud/nexus-auth.js +11 -2
  4. package/dist/cloud/nexus-auth.js.map +1 -1
  5. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
  6. package/dist/cloud/nexus-cloud-status.js +18 -5
  7. package/dist/cloud/nexus-cloud-status.js.map +1 -1
  8. package/dist/cloud/nexus-credentials.d.ts +3 -2
  9. package/dist/cloud/nexus-credentials.d.ts.map +1 -1
  10. package/dist/cloud/nexus-credentials.js +58 -14
  11. package/dist/cloud/nexus-credentials.js.map +1 -1
  12. package/dist/cloud/nexus-logout.d.ts.map +1 -1
  13. package/dist/cloud/nexus-logout.js +12 -2
  14. package/dist/cloud/nexus-logout.js.map +1 -1
  15. package/dist/cloud/nexus-vault-state.d.ts.map +1 -1
  16. package/dist/cloud/nexus-vault-state.js +6 -26
  17. package/dist/cloud/nexus-vault-state.js.map +1 -1
  18. package/dist/config/registry.d.ts +21 -0
  19. package/dist/config/registry.d.ts.map +1 -1
  20. package/dist/config/registry.js +41 -0
  21. package/dist/config/registry.js.map +1 -1
  22. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  23. package/dist/dispatch/mvi-projection.js +2 -0
  24. package/dist/dispatch/mvi-projection.js.map +1 -1
  25. package/dist/docs/docs-ops.d.ts +15 -14
  26. package/dist/docs/docs-ops.d.ts.map +1 -1
  27. package/dist/docs/docs-ops.js +32 -96
  28. package/dist/docs/docs-ops.js.map +1 -1
  29. package/dist/docs/docs-read-model.d.ts +19 -10
  30. package/dist/docs/docs-read-model.d.ts.map +1 -1
  31. package/dist/docs/docs-read-model.js +31 -47
  32. package/dist/docs/docs-read-model.js.map +1 -1
  33. package/dist/docs/docs-update.d.ts +51 -1
  34. package/dist/docs/docs-update.d.ts.map +1 -1
  35. package/dist/docs/docs-update.js +235 -13
  36. package/dist/docs/docs-update.js.map +1 -1
  37. package/dist/docs/doctor.d.ts +26 -4
  38. package/dist/docs/doctor.d.ts.map +1 -1
  39. package/dist/docs/doctor.js +260 -102
  40. package/dist/docs/doctor.js.map +1 -1
  41. package/dist/docs/fetch-result.d.ts +30 -10
  42. package/dist/docs/fetch-result.d.ts.map +1 -1
  43. package/dist/docs/fetch-result.js +100 -15
  44. package/dist/docs/fetch-result.js.map +1 -1
  45. package/dist/docs/index.d.ts +1 -0
  46. package/dist/docs/index.d.ts.map +1 -1
  47. package/dist/docs/index.js +1 -0
  48. package/dist/docs/index.js.map +1 -1
  49. package/dist/docs/legacy-doc-migration.d.ts +182 -0
  50. package/dist/docs/legacy-doc-migration.d.ts.map +1 -0
  51. package/dist/docs/legacy-doc-migration.js +480 -0
  52. package/dist/docs/legacy-doc-migration.js.map +1 -0
  53. package/dist/docs/publications-store.d.ts +67 -0
  54. package/dist/docs/publications-store.d.ts.map +1 -0
  55. package/dist/docs/publications-store.js +193 -0
  56. package/dist/docs/publications-store.js.map +1 -0
  57. package/dist/docs/publish-pr.d.ts.map +1 -1
  58. package/dist/docs/publish-pr.js +31 -18
  59. package/dist/docs/publish-pr.js.map +1 -1
  60. package/dist/docs/section-leases.d.ts +233 -0
  61. package/dist/docs/section-leases.d.ts.map +1 -0
  62. package/dist/docs/section-leases.js +344 -0
  63. package/dist/docs/section-leases.js.map +1 -0
  64. package/dist/docs/section-merge.d.ts +159 -0
  65. package/dist/docs/section-merge.d.ts.map +1 -0
  66. package/dist/docs/section-merge.js +215 -0
  67. package/dist/docs/section-merge.js.map +1 -0
  68. package/dist/docs/section-write-path.d.ts +191 -0
  69. package/dist/docs/section-write-path.d.ts.map +1 -0
  70. package/dist/docs/section-write-path.js +423 -0
  71. package/dist/docs/section-write-path.js.map +1 -0
  72. package/dist/docs/stats.d.ts +56 -0
  73. package/dist/docs/stats.d.ts.map +1 -0
  74. package/dist/docs/stats.js +119 -0
  75. package/dist/docs/stats.js.map +1 -0
  76. package/dist/gc/cleanup.d.ts +1 -1
  77. package/dist/gc/cleanup.d.ts.map +1 -1
  78. package/dist/gc/cleanup.js +10 -1
  79. package/dist/gc/cleanup.js.map +1 -1
  80. package/dist/gc/janitor.js +1 -1
  81. package/dist/gc/janitor.js.map +1 -1
  82. package/dist/internal.d.ts +1 -1
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +1 -1
  85. package/dist/internal.js.map +1 -1
  86. package/dist/memory/pipeline-manifest-sqlite.d.ts +34 -0
  87. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  88. package/dist/memory/pipeline-manifest-sqlite.js +114 -0
  89. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  90. package/dist/nexus/analyze-orchestrator.d.ts +5 -1
  91. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  92. package/dist/nexus/analyze-orchestrator.js +25 -13
  93. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  94. package/dist/nexus/assessment-store.d.ts +8 -4
  95. package/dist/nexus/assessment-store.d.ts.map +1 -1
  96. package/dist/nexus/assessment-store.js +18 -27
  97. package/dist/nexus/assessment-store.js.map +1 -1
  98. package/dist/orchestration/index.d.ts.map +1 -1
  99. package/dist/orchestration/index.js +6 -0
  100. package/dist/orchestration/index.js.map +1 -1
  101. package/dist/orchestration/lean-change.d.ts +104 -5
  102. package/dist/orchestration/lean-change.d.ts.map +1 -1
  103. package/dist/orchestration/lean-change.js +162 -6
  104. package/dist/orchestration/lean-change.js.map +1 -1
  105. package/dist/orchestration/spawn-prompt.d.ts +6 -1
  106. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  107. package/dist/orchestration/spawn-prompt.js +3 -1
  108. package/dist/orchestration/spawn-prompt.js.map +1 -1
  109. package/dist/orchestration/spawn.d.ts.map +1 -1
  110. package/dist/orchestration/spawn.js +6 -0
  111. package/dist/orchestration/spawn.js.map +1 -1
  112. package/dist/release/open.d.ts.map +1 -1
  113. package/dist/release/open.js +6 -2
  114. package/dist/release/open.js.map +1 -1
  115. package/dist/release/plan.d.ts.map +1 -1
  116. package/dist/release/plan.js +33 -2
  117. package/dist/release/plan.js.map +1 -1
  118. package/dist/resources/admission-ledger.d.ts +5 -0
  119. package/dist/resources/admission-ledger.d.ts.map +1 -1
  120. package/dist/resources/admission-ledger.js +1 -1
  121. package/dist/resources/admission-ledger.js.map +1 -1
  122. package/dist/resources/run-admission.d.ts.map +1 -1
  123. package/dist/resources/run-admission.js +4 -1
  124. package/dist/resources/run-admission.js.map +1 -1
  125. package/dist/resources/run-governed.d.ts +29 -4
  126. package/dist/resources/run-governed.d.ts.map +1 -1
  127. package/dist/resources/run-governed.js +113 -73
  128. package/dist/resources/run-governed.js.map +1 -1
  129. package/dist/sentient/worktree-dispatch.d.ts +12 -1
  130. package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
  131. package/dist/sentient/worktree-dispatch.js +19 -0
  132. package/dist/sentient/worktree-dispatch.js.map +1 -1
  133. package/dist/spawn/branch-lock.d.ts +11 -1
  134. package/dist/spawn/branch-lock.d.ts.map +1 -1
  135. package/dist/spawn/branch-lock.js +54 -4
  136. package/dist/spawn/branch-lock.js.map +1 -1
  137. package/dist/sticky/archive.d.ts +1 -0
  138. package/dist/sticky/archive.d.ts.map +1 -1
  139. package/dist/sticky/archive.js +13 -0
  140. package/dist/sticky/archive.js.map +1 -1
  141. package/dist/sticky/engine-ops.d.ts.map +1 -1
  142. package/dist/sticky/engine-ops.js +7 -0
  143. package/dist/sticky/engine-ops.js.map +1 -1
  144. package/dist/store/attachment-repair.d.ts +10 -4
  145. package/dist/store/attachment-repair.d.ts.map +1 -1
  146. package/dist/store/attachment-repair.js +52 -25
  147. package/dist/store/attachment-repair.js.map +1 -1
  148. package/dist/store/attachment-store.d.ts.map +1 -1
  149. package/dist/store/attachment-store.js +27 -18
  150. package/dist/store/attachment-store.js.map +1 -1
  151. package/dist/store/blob-keep.d.ts +83 -0
  152. package/dist/store/blob-keep.d.ts.map +1 -1
  153. package/dist/store/blob-keep.js +139 -0
  154. package/dist/store/blob-keep.js.map +1 -1
  155. package/dist/store/blob-ops.d.ts +24 -0
  156. package/dist/store/blob-ops.d.ts.map +1 -1
  157. package/dist/store/blob-ops.js +47 -0
  158. package/dist/store/blob-ops.js.map +1 -1
  159. package/dist/store/conduit-doc-history.d.ts +209 -0
  160. package/dist/store/conduit-doc-history.d.ts.map +1 -1
  161. package/dist/store/conduit-doc-history.js +315 -3
  162. package/dist/store/conduit-doc-history.js.map +1 -1
  163. package/dist/store/decision-adr-links.d.ts +11 -0
  164. package/dist/store/decision-adr-links.d.ts.map +1 -1
  165. package/dist/store/decision-adr-links.js +20 -1
  166. package/dist/store/decision-adr-links.js.map +1 -1
  167. package/dist/store/display-id-alias.d.ts +8 -2
  168. package/dist/store/display-id-alias.d.ts.map +1 -1
  169. package/dist/store/display-id-alias.js +8 -3
  170. package/dist/store/display-id-alias.js.map +1 -1
  171. package/dist/store/lock.d.ts +18 -0
  172. package/dist/store/lock.d.ts.map +1 -1
  173. package/dist/store/lock.js +41 -0
  174. package/dist/store/lock.js.map +1 -1
  175. package/dist/store/row-identity-registry.d.ts.map +1 -1
  176. package/dist/store/row-identity-registry.js +17 -0
  177. package/dist/store/row-identity-registry.js.map +1 -1
  178. package/dist/store/schema/cleo-project/conduit.d.ts +16 -0
  179. package/dist/store/schema/cleo-project/conduit.d.ts.map +1 -1
  180. package/dist/store/schema/cleo-project/conduit.js +8 -0
  181. package/dist/store/schema/cleo-project/conduit.js.map +1 -1
  182. package/dist/store/schema/cleo-project/docs.d.ts +294 -0
  183. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  184. package/dist/store/schema/cleo-project/docs.js +82 -0
  185. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  186. package/dist/store/sync/hlc.d.ts +9 -0
  187. package/dist/store/sync/hlc.d.ts.map +1 -1
  188. package/dist/store/sync/hlc.js +9 -0
  189. package/dist/store/sync/hlc.js.map +1 -1
  190. package/dist/store/sync/merge/engine.d.ts.map +1 -1
  191. package/dist/store/sync/merge/engine.js +4 -2
  192. package/dist/store/sync/merge/engine.js.map +1 -1
  193. package/dist/store/sync/merge/rules.d.ts +12 -1
  194. package/dist/store/sync/merge/rules.d.ts.map +1 -1
  195. package/dist/store/sync/merge/rules.js +76 -1
  196. package/dist/store/sync/merge/rules.js.map +1 -1
  197. package/dist/store/sync/replica-registry.d.ts +6 -2
  198. package/dist/store/sync/replica-registry.d.ts.map +1 -1
  199. package/dist/store/sync/replica-registry.js +21 -9
  200. package/dist/store/sync/replica-registry.js.map +1 -1
  201. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  202. package/dist/store/sync/timestamp-canon.js +6 -0
  203. package/dist/store/sync/timestamp-canon.js.map +1 -1
  204. package/dist/store/table-classification.d.ts +58 -0
  205. package/dist/store/table-classification.d.ts.map +1 -1
  206. package/dist/store/table-classification.js +72 -0
  207. package/dist/store/table-classification.js.map +1 -1
  208. package/dist/store/twin-collapse.d.ts.map +1 -1
  209. package/dist/store/twin-collapse.js +4 -1
  210. package/dist/store/twin-collapse.js.map +1 -1
  211. package/dist/store/vault-manifest.d.ts +10 -1
  212. package/dist/store/vault-manifest.d.ts.map +1 -1
  213. package/dist/store/vault-manifest.js +59 -1
  214. package/dist/store/vault-manifest.js.map +1 -1
  215. package/dist/tasks/affected-scope.d.ts +11 -0
  216. package/dist/tasks/affected-scope.d.ts.map +1 -1
  217. package/dist/tasks/affected-scope.js +30 -11
  218. package/dist/tasks/affected-scope.js.map +1 -1
  219. package/dist/tasks/cancel-ops.d.ts.map +1 -1
  220. package/dist/tasks/cancel-ops.js +7 -2
  221. package/dist/tasks/cancel-ops.js.map +1 -1
  222. package/dist/tasks/change-set.d.ts +22 -0
  223. package/dist/tasks/change-set.d.ts.map +1 -1
  224. package/dist/tasks/change-set.js +119 -2
  225. package/dist/tasks/change-set.js.map +1 -1
  226. package/dist/tasks/complete.d.ts.map +1 -1
  227. package/dist/tasks/complete.js +7 -0
  228. package/dist/tasks/complete.js.map +1 -1
  229. package/dist/tasks/done-plan.d.ts +5 -0
  230. package/dist/tasks/done-plan.d.ts.map +1 -1
  231. package/dist/tasks/done-plan.js +54 -19
  232. package/dist/tasks/done-plan.js.map +1 -1
  233. package/dist/tasks/engine-wrap.d.ts +4 -0
  234. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  235. package/dist/tasks/engine-wrap.js +20 -4
  236. package/dist/tasks/engine-wrap.js.map +1 -1
  237. package/dist/tasks/evidence-paths.d.ts +11 -0
  238. package/dist/tasks/evidence-paths.d.ts.map +1 -1
  239. package/dist/tasks/evidence-paths.js +12 -0
  240. package/dist/tasks/evidence-paths.js.map +1 -1
  241. package/dist/tools/fs.d.ts +7 -3
  242. package/dist/tools/fs.d.ts.map +1 -1
  243. package/dist/tools/fs.js +23 -8
  244. package/dist/tools/fs.js.map +1 -1
  245. package/dist/worktree/list.d.ts.map +1 -1
  246. package/dist/worktree/list.js +9 -0
  247. package/dist/worktree/list.js.map +1 -1
  248. package/dist/worktree/prune.d.ts.map +1 -1
  249. package/dist/worktree/prune.js +52 -1
  250. package/dist/worktree/prune.js.map +1 -1
  251. package/migrations/drizzle-cleo-project/20261013000000_t13360-migrated-doc-import/migration.sql +61 -0
  252. package/migrations/drizzle-cleo-project/20261014000000_t13362-docs-publications-ledger/migration.sql +45 -0
  253. package/package.json +13 -13
  254. package/templates/CLEO-INJECTION.md +1 -1
  255. package/templates/CLEO-REFERENCE.md +2 -2
@@ -2,7 +2,7 @@
2
2
  * `cleo docs doctor` — store health diagnostics + safe repairs — T13447.
3
3
  *
4
4
  * Audits the CleoDocs store (`cleo.db` `attachments`/`docs_wikilinks` tables
5
- * plus the on-disk legacy surfaces) for six known drift classes and, when
5
+ * plus the on-disk legacy surfaces) for seven known drift classes and, when
6
6
  * invoked with `apply: true`, performs the repairs that are safe to run
7
7
  * in-place:
8
8
  *
@@ -32,10 +32,25 @@
32
32
  * - `legacy-store-present`— `.cleo/attachments/index.db`,
33
33
  * `.cleo/docs-publications.json` and/or
34
34
  * `.cleo/attachments/sha256/` still on disk.
35
+ * - `legacy-blob-coverage`— content-bearing rows whose sha256 has NO
36
+ * counterpart in the blob store
37
+ * (`.cleo/blobs/blobs/`). This is the T13362 AC2
38
+ * deletion pre-check: the legacy byte tree may
39
+ * only be deleted once this diagnostic is clean
40
+ * (severity `error` while any are missing).
41
+ * Repair (`backfill-blob-bytes`, T13653): locate
42
+ * the bytes in the legacy `.cleo/attachments/`
43
+ * tree or a live keep-link, SHA-256-verify them
44
+ * against the row's recorded hash, and mirror
45
+ * them into the blob store. Hash-verified and
46
+ * idempotent — never writes unverified bytes,
47
+ * skips shas already in the store. Runs under
48
+ * the normal `--apply`, or focused via
49
+ * `--repair` (backfill only).
35
50
  * - `stale-drafts` — slugged docs still `draft` after
36
51
  * `--older-than-days` (default 30).
37
52
  *
38
- * SAFETY: `apply: true` REFUSES to run without a backup receipt
53
+ * SAFETY: `apply: true` (or `repair: true`) REFUSES to run without a backup receipt
39
54
  * ({@link DocsDoctorOptions.backupReceiptPath}) whose mtime is at most
40
55
  * {@link DOCS_DOCTOR_BACKUP_MAX_AGE_MS} old. The dispatch layer creates the
41
56
  * backup itself (same `createBackup` as `cleo backup add`) and passes the
@@ -72,11 +87,11 @@ export declare const DOCS_DOCTOR_DEFAULT_OLDER_THAN_DAYS = 30;
72
87
  */
73
88
  export declare const DOCS_DOCTOR_MAX_DETAIL_ITEMS = 50;
74
89
  /**
75
- * The six diagnostic classes {@link runDocsDoctor} checks for.
90
+ * The seven diagnostic classes {@link runDocsDoctor} checks for.
76
91
  *
77
92
  * @task T13447
78
93
  */
79
- export type DocsDoctorDiagnosticKind = 'dangling-pointers' | 'doc-version-skew' | 'empty-provenance' | 'wikilinks-drift' | 'legacy-store-present' | 'stale-drafts';
94
+ export type DocsDoctorDiagnosticKind = 'dangling-pointers' | 'doc-version-skew' | 'empty-provenance' | 'wikilinks-drift' | 'legacy-store-present' | 'legacy-blob-coverage' | 'stale-drafts';
80
95
  /**
81
96
  * One diagnostic class in the report: severity, total offender count, and a
82
97
  * capped detail list.
@@ -144,6 +159,13 @@ export interface DocsDoctorOptions {
144
159
  * {@link backupReceiptPath} — see the module docblock for the safety rule.
145
160
  */
146
161
  readonly apply?: boolean;
162
+ /**
163
+ * Execute ONLY the legacy-blob-coverage backfill (T13653): mirror
164
+ * hash-verified legacy bytes into the blob store so unmigrated docs become
165
+ * readable again. Subject to the same backup-receipt gate as
166
+ * {@link apply}; ignored on dry runs.
167
+ */
168
+ readonly repair?: boolean;
147
169
  /** Age threshold (days) for the `stale-drafts` diagnostic. Default 30. */
148
170
  readonly olderThanDays?: number;
149
171
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAsBH;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,sBAAsB,GACtB,cAAc,CAAC;AAEnB;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACpD,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAofhG;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAoI9B"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * `cleo docs doctor` — store health diagnostics + safe repairs — T13447.
3
3
  *
4
4
  * Audits the CleoDocs store (`cleo.db` `attachments`/`docs_wikilinks` tables
5
- * plus the on-disk legacy surfaces) for six known drift classes and, when
5
+ * plus the on-disk legacy surfaces) for seven known drift classes and, when
6
6
  * invoked with `apply: true`, performs the repairs that are safe to run
7
7
  * in-place:
8
8
  *
@@ -32,10 +32,25 @@
32
32
  * - `legacy-store-present`— `.cleo/attachments/index.db`,
33
33
  * `.cleo/docs-publications.json` and/or
34
34
  * `.cleo/attachments/sha256/` still on disk.
35
+ * - `legacy-blob-coverage`— content-bearing rows whose sha256 has NO
36
+ * counterpart in the blob store
37
+ * (`.cleo/blobs/blobs/`). This is the T13362 AC2
38
+ * deletion pre-check: the legacy byte tree may
39
+ * only be deleted once this diagnostic is clean
40
+ * (severity `error` while any are missing).
41
+ * Repair (`backfill-blob-bytes`, T13653): locate
42
+ * the bytes in the legacy `.cleo/attachments/`
43
+ * tree or a live keep-link, SHA-256-verify them
44
+ * against the row's recorded hash, and mirror
45
+ * them into the blob store. Hash-verified and
46
+ * idempotent — never writes unverified bytes,
47
+ * skips shas already in the store. Runs under
48
+ * the normal `--apply`, or focused via
49
+ * `--repair` (backfill only).
35
50
  * - `stale-drafts` — slugged docs still `draft` after
36
51
  * `--older-than-days` (default 30).
37
52
  *
38
- * SAFETY: `apply: true` REFUSES to run without a backup receipt
53
+ * SAFETY: `apply: true` (or `repair: true`) REFUSES to run without a backup receipt
39
54
  * ({@link DocsDoctorOptions.backupReceiptPath}) whose mtime is at most
40
55
  * {@link DOCS_DOCTOR_BACKUP_MAX_AGE_MS} old. The dispatch layer creates the
41
56
  * backup itself (same `createBackup` as `cleo backup add`) and passes the
@@ -49,14 +64,16 @@
49
64
  * @see derive-links.ts — topics/related_tasks derivation (T13357)
50
65
  * @see wikilinks.ts — derived edge table + rebuild (T11826)
51
66
  */
52
- import { existsSync, readFileSync, statSync } from 'node:fs';
67
+ import { createHash } from 'node:crypto';
68
+ import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
69
+ import { readFile } from 'node:fs/promises';
53
70
  import { tmpdir } from 'node:os';
54
71
  import { isAbsolute, join, resolve, sep } from 'node:path';
55
72
  import { getCleoWorktreesRoot } from '@cleocode/paths';
56
73
  import { eq } from 'drizzle-orm';
57
74
  import { resolveCleoDir } from '../paths.js';
58
75
  import { createAttachmentStore } from '../store/attachment-store.js';
59
- import { blobContentExists } from '../store/blob-keep.js';
76
+ import { backfillBlobStoreBytes, blobContentExists, resolveLegacyByteSource, } from '../store/blob-keep.js';
60
77
  import { docsWikilinks } from '../store/schema/attachments.js';
61
78
  import { getDb } from '../store/sqlite.js';
62
79
  import { docsAttachments } from '../store/tasks-schema.js';
@@ -145,6 +162,24 @@ function blobRowContentAlive(row, payload, projectRoot) {
145
162
  const mime = typeof mimeRaw === 'string' ? mimeRaw : 'application/octet-stream';
146
163
  return blobContentExists(resolveCleoDir(projectRoot), row.sha256, mime);
147
164
  }
165
+ /**
166
+ * True when the blob store's file for `sha256` exists AND re-hashes to the
167
+ * recorded sha (T13654). A truncated or corrupted file at the content
168
+ * address — e.g. left by an interrupted write that predated tmp-then-rename —
169
+ * returns false so the coverage check treats the doc as unmigrated and the
170
+ * backfill replaces it from verified source bytes.
171
+ *
172
+ * @internal
173
+ */
174
+ async function blobStoreFileVerified(cleoDir, sha256) {
175
+ try {
176
+ const bytes = await readFile(join(cleoDir, 'blobs', 'blobs', sha256));
177
+ return createHash('sha256').update(bytes).digest('hex') === sha256;
178
+ }
179
+ catch {
180
+ return false;
181
+ }
182
+ }
148
183
  /**
149
184
  * True when `absPath` points inside a worktree or temp directory:
150
185
  * the canonical CLEO worktrees root, a `.claude/worktrees/` agent spawn, or
@@ -314,7 +349,10 @@ async function scanStore(projectRoot, db, olderThanDays) {
314
349
  danglingCount += 1;
315
350
  const reason = !exists ? 'missing' : (ephemeral ?? 'missing');
316
351
  if (localFile && !exists) {
317
- archivable.push({ row, path: absPath });
352
+ // A superseded doc keeps its status (docs.lifecycle.transitions, T12945):
353
+ // it is reported dangling, never archived out of 'superseded'.
354
+ if (row.lifecycleStatus !== 'superseded')
355
+ archivable.push({ row, path: absPath });
318
356
  }
319
357
  else if (blobWithPath &&
320
358
  !exists &&
@@ -420,7 +458,7 @@ async function scanStore(projectRoot, db, olderThanDays) {
420
458
  },
421
459
  {
422
460
  path: join(projectRoot, '.cleo', 'docs-publications.json'),
423
- what: 'publication ledger',
461
+ what: 'publication ledger (deprecated; seeded into docs_publications)',
424
462
  },
425
463
  {
426
464
  path: join(projectRoot, '.cleo', 'attachments', 'sha256'),
@@ -430,6 +468,51 @@ async function scanStore(projectRoot, db, olderThanDays) {
430
468
  const legacyItems = legacyCandidates
431
469
  .filter((c) => existsSync(c.path))
432
470
  .map((c) => ({ path: c.path, what: c.what }));
471
+ // ── legacy-blob-coverage (T13362 AC2) ──────────────────────────────────────
472
+ // Deletion pre-check for the T12535 dropTask: the legacy
473
+ // `.cleo/attachments/sha256/` byte tree may ONLY be deleted once every
474
+ // content-bearing registry row has a migrated counterpart in the blob
475
+ // store (`.cleo/blobs/blobs/<sha>`). This check is report-only — it never
476
+ // deletes bytes.
477
+ const blobStoreShas = new Set();
478
+ try {
479
+ for (const name of readdirSync(join(resolveCleoDir(projectRoot), 'blobs', 'blobs'))) {
480
+ if (name.length === 64 && /^[0-9a-f]{64}$/.test(name))
481
+ blobStoreShas.add(name);
482
+ }
483
+ }
484
+ catch {
485
+ /* blob store dir may not exist yet — every row then counts as missing */
486
+ }
487
+ const coverageMissing = [];
488
+ const coverageSeen = new Set();
489
+ const blobBackfillable = [];
490
+ const cleoDir = resolveCleoDir(projectRoot);
491
+ for (const row of rows) {
492
+ const payload = payloadById.get(row.id) ?? null;
493
+ if (payload?.kind !== 'blob' && payload?.kind !== 'local-file')
494
+ continue;
495
+ if (coverageSeen.has(row.sha256))
496
+ continue;
497
+ coverageSeen.add(row.sha256);
498
+ // T13654: existence is not coverage. A truncated/corrupt file at the
499
+ // content address (an interrupted pre-tmp-rename write) makes the doc
500
+ // unreadable via blobReadBySha's integrity check — it counts as missing
501
+ // and becomes a backfill candidate so the repair can replace it.
502
+ if (!blobStoreShas.has(row.sha256) || !(await blobStoreFileVerified(cleoDir, row.sha256))) {
503
+ coverageMissing.push({ sha256: row.sha256, slug: row.slug });
504
+ const mimeRaw = payload?.['mime'];
505
+ const mime = typeof mimeRaw === 'string' ? mimeRaw : 'application/octet-stream';
506
+ blobBackfillable.push({
507
+ sha256: row.sha256,
508
+ slug: row.slug,
509
+ sourcePath: resolveLegacyByteSource(cleoDir, row.sha256, mime),
510
+ });
511
+ }
512
+ }
513
+ const coverageItems = coverageMissing
514
+ .slice(0, DOCS_DOCTOR_MAX_DETAIL_ITEMS)
515
+ .map((m) => ({ sha256: m.sha256, slug: m.slug }));
433
516
  // ── stale-drafts ───────────────────────────────────────────────────────────
434
517
  const cutoffIso = new Date(Date.now() - olderThanDays * 24 * 60 * 60 * 1000).toISOString();
435
518
  const staleRows = rows.filter((r) => r.slug !== null && r.lifecycleStatus === 'draft' && r.createdAt < cutoffIso);
@@ -472,6 +555,13 @@ async function scanStore(projectRoot, db, olderThanDays) {
472
555
  items: legacyItems,
473
556
  truncated: false,
474
557
  },
558
+ {
559
+ kind: 'legacy-blob-coverage',
560
+ severity: coverageMissing.length > 0 ? 'error' : 'info',
561
+ count: coverageMissing.length,
562
+ items: coverageItems,
563
+ truncated: coverageMissing.length > coverageItems.length,
564
+ },
475
565
  {
476
566
  kind: 'stale-drafts',
477
567
  severity: 'info',
@@ -485,6 +575,7 @@ async function scanStore(projectRoot, db, olderThanDays) {
485
575
  dangling: { archivable, clearable },
486
576
  skewed,
487
577
  backfillable,
578
+ blobBackfillable,
488
579
  missingEdges,
489
580
  needsWikilinksRebuild: missingEdges.length > 0 || backfillChangesLinks,
490
581
  };
@@ -509,8 +600,27 @@ async function scanStore(projectRoot, db, olderThanDays) {
509
600
  // @sync-invariant docs.lifecycle.transitions the only lifecycle write is draft→archived for dangling rows, a legal matrix transition
510
601
  export async function runDocsDoctor(projectRoot, opts = {}) {
511
602
  const apply = opts.apply === true;
603
+ const repair = opts.repair === true;
604
+ const mutate = apply || repair;
512
605
  const olderThanDays = opts.olderThanDays ?? DOCS_DOCTOR_DEFAULT_OLDER_THAN_DAYS;
513
- if (apply) {
606
+ // T13654: --apply and --repair together are refused, not merged. Planning
607
+ // skips the archive/clear/docVersion/provenance/wikilinks repairs under
608
+ // --repair, so executing them anyway (the old `apply` guard) produced
609
+ // UNREPORTED mutations — repairs the plan never listed. The two modes have
610
+ // disjoint repair sets; run them as separate invocations.
611
+ if (apply && repair) {
612
+ return {
613
+ ok: false,
614
+ error: {
615
+ // @sync-invariant none:input-shape a flag-combination refusal before any repair write; nothing was written
616
+ code: 'E_DOCS_DOCTOR_FLAG_CONFLICT',
617
+ message: 'docs doctor: --apply and --repair cannot be combined — --repair runs ONLY the ' +
618
+ 'legacy-blob backfill. Run `cleo docs doctor --repair` for the backfill, or ' +
619
+ '`cleo docs doctor --apply` for the full repair set, separately.',
620
+ },
621
+ };
622
+ }
623
+ if (mutate) {
514
624
  const refusal = checkBackupReceipt(opts.backupReceiptPath);
515
625
  if (refusal)
516
626
  return { ok: false, error: refusal };
@@ -518,115 +628,163 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
518
628
  const db = await getDb(projectRoot);
519
629
  const pre = await scanStore(projectRoot, db, olderThanDays);
520
630
  const repairs = [];
521
- for (const { row, path } of pre.dangling.archivable) {
522
- repairs.push({
523
- kind: 'dangling-pointers',
524
- action: 'archive-dangling',
525
- applied: apply,
526
- attachmentId: row.id,
527
- ...(row.slug !== null ? { slug: row.slug } : {}),
528
- detail: `marked-dangling: local-file target missing (${path}) → lifecycle_status = 'archived'`,
529
- });
530
- }
531
- for (const { row, path } of pre.dangling.clearable) {
532
- repairs.push({
533
- kind: 'dangling-pointers',
534
- action: 'clear-stale-path',
535
- applied: apply,
536
- attachmentId: row.id,
537
- ...(row.slug !== null ? { slug: row.slug } : {}),
538
- detail: `cleared stale legacy path (${path}) — content alive in the blob store ` +
539
- `(sha256 ${row.sha256.slice(0, 12)}…)`,
540
- });
541
- }
542
- for (const { row, expected } of pre.skewed) {
543
- repairs.push({
544
- kind: 'doc-version-skew',
545
- action: 'set-doc-version',
546
- applied: apply,
547
- attachmentId: row.id,
548
- ...(row.slug !== null ? { slug: row.slug } : {}),
549
- detail: `audit-note: docVersion ${row.docVersion} → ${expected} (audit log revisions + 1)`,
550
- });
551
- }
552
- for (const { row, derived } of pre.backfillable) {
553
- const derivedCount = derived.topics.length + derived.relatedTasks.length;
554
- repairs.push({
555
- kind: 'empty-provenance',
556
- action: 'backfill-provenance',
557
- applied: apply && derivedCount > 0,
558
- attachmentId: row.id,
559
- ...(row.slug !== null ? { slug: row.slug } : {}),
560
- detail: derivedCount > 0
561
- ? `derived topics=[${derived.topics.join(',')}] related_tasks=[${derived.relatedTasks.join(',')}]`
562
- : 'no derivable topics or task mentions — columns stay NULL',
563
- });
631
+ // T13653: in repair mode ONLY the blob backfill runs — apply mode plans it
632
+ // alongside the other repairs.
633
+ if (!repair) {
634
+ for (const { row, path } of pre.dangling.archivable) {
635
+ repairs.push({
636
+ kind: 'dangling-pointers',
637
+ action: 'archive-dangling',
638
+ applied: apply,
639
+ attachmentId: row.id,
640
+ ...(row.slug !== null ? { slug: row.slug } : {}),
641
+ detail: `marked-dangling: local-file target missing (${path}) → lifecycle_status = 'archived'`,
642
+ });
643
+ }
644
+ for (const { row, path } of pre.dangling.clearable) {
645
+ repairs.push({
646
+ kind: 'dangling-pointers',
647
+ action: 'clear-stale-path',
648
+ applied: apply,
649
+ attachmentId: row.id,
650
+ ...(row.slug !== null ? { slug: row.slug } : {}),
651
+ detail: `cleared stale legacy path (${path}) — content alive in the blob store ` +
652
+ `(sha256 ${row.sha256.slice(0, 12)}…)`,
653
+ });
654
+ }
655
+ for (const { row, expected } of pre.skewed) {
656
+ repairs.push({
657
+ kind: 'doc-version-skew',
658
+ action: 'set-doc-version',
659
+ applied: apply,
660
+ attachmentId: row.id,
661
+ ...(row.slug !== null ? { slug: row.slug } : {}),
662
+ detail: `audit-note: docVersion ${row.docVersion} → ${expected} (audit log revisions + 1)`,
663
+ });
664
+ }
665
+ for (const { row, derived } of pre.backfillable) {
666
+ const derivedCount = derived.topics.length + derived.relatedTasks.length;
667
+ repairs.push({
668
+ kind: 'empty-provenance',
669
+ action: 'backfill-provenance',
670
+ applied: apply && derivedCount > 0,
671
+ attachmentId: row.id,
672
+ ...(row.slug !== null ? { slug: row.slug } : {}),
673
+ detail: derivedCount > 0
674
+ ? `derived topics=[${derived.topics.join(',')}] related_tasks=[${derived.relatedTasks.join(',')}]`
675
+ : 'no derivable topics or task mentions — columns stay NULL',
676
+ });
677
+ }
678
+ if (pre.needsWikilinksRebuild) {
679
+ repairs.push({
680
+ kind: 'wikilinks-drift',
681
+ action: 'rebuild-wikilinks',
682
+ applied: apply,
683
+ detail: pre.missingEdges.length > 0
684
+ ? `${pre.missingEdges.length} expected edge(s) absent from docs_wikilinks → full re-derivation`
685
+ : 'provenance backfill changes derived edges → full re-derivation',
686
+ });
687
+ }
564
688
  }
565
- if (pre.needsWikilinksRebuild) {
689
+ for (const candidate of pre.blobBackfillable) {
566
690
  repairs.push({
567
- kind: 'wikilinks-drift',
568
- action: 'rebuild-wikilinks',
569
- applied: apply,
570
- detail: pre.missingEdges.length > 0
571
- ? `${pre.missingEdges.length} expected edge(s) absent from docs_wikilinks → full re-derivation`
572
- : 'provenance backfill changes derived edges → full re-derivation',
691
+ kind: 'legacy-blob-coverage',
692
+ action: 'backfill-blob-bytes',
693
+ applied: mutate && candidate.sourcePath !== null,
694
+ ...(candidate.slug !== null ? { slug: candidate.slug } : {}),
695
+ detail: candidate.sourcePath !== null
696
+ ? `mirror hash-verified legacy bytes (${candidate.sourcePath}) → blob store ` +
697
+ `(sha256 ${candidate.sha256.slice(0, 12)}…)`
698
+ : `no legacy bytes found for sha256 ${candidate.sha256.slice(0, 12)}… — ` +
699
+ 'cannot backfill; the doc stays unreadable until its bytes are restored',
573
700
  });
574
701
  }
575
702
  // ── Apply repairs (backup gate already passed) ─────────────────────────────
576
- if (apply) {
577
- for (const { row, expected } of pre.skewed) {
578
- await db
579
- .update(docsAttachments)
580
- .set({ docVersion: expected })
581
- .where(eq(docsAttachments.id, row.id))
582
- .run();
583
- }
584
- for (const { row, derived } of pre.backfillable) {
585
- if (derived.topics.length + derived.relatedTasks.length === 0)
703
+ if (mutate) {
704
+ const cleoDir = resolveCleoDir(projectRoot);
705
+ // Backfill repair entries were appended in pre.blobBackfillable order —
706
+ // zip by index so each outcome annotates its own entry.
707
+ const backfillRepairIdx = repairs
708
+ .map((r, i) => ({ r, i }))
709
+ .filter(({ r }) => r.kind === 'legacy-blob-coverage' && r.action === 'backfill-blob-bytes')
710
+ .map(({ i }) => i);
711
+ for (const [n, candidate] of pre.blobBackfillable.entries()) {
712
+ if (candidate.sourcePath === null)
586
713
  continue;
587
- await db
588
- .update(docsAttachments)
589
- .set({
590
- topics: linksJsonOrNull(derived.topics),
591
- relatedTasks: linksJsonOrNull(derived.relatedTasks),
592
- })
593
- .where(eq(docsAttachments.id, row.id))
594
- .run();
595
- }
596
- for (const { row } of pre.dangling.archivable) {
597
- await db
598
- .update(docsAttachments)
599
- .set({ lifecycleStatus: 'archived' })
600
- .where(eq(docsAttachments.id, row.id))
601
- .run();
602
- }
603
- for (const { row, payload } of pre.dangling.clearable) {
604
- const cleaned = { ...payload };
605
- delete cleaned['path'];
606
- await db
607
- .update(docsAttachments)
608
- .set({ attachmentJson: JSON.stringify(cleaned) })
609
- .where(eq(docsAttachments.id, row.id))
610
- .run();
714
+ const outcome = await backfillBlobStoreBytes(cleoDir, candidate.sha256, candidate.sourcePath);
715
+ if (outcome === 'written' || outcome === 'present')
716
+ continue;
717
+ const idx = backfillRepairIdx[n];
718
+ const original = idx === undefined ? undefined : repairs[idx];
719
+ if (original !== undefined && idx !== undefined) {
720
+ repairs[idx] = {
721
+ ...original,
722
+ detail: outcome === 'unverified'
723
+ ? `SKIPPED — legacy bytes at ${candidate.sourcePath} fail SHA-256 ` +
724
+ `verification against the recorded hash ${candidate.sha256.slice(0, 12)}…; ` +
725
+ 'nothing written (unverified bytes would poison the content-addressed store)'
726
+ : `SKIPPED — could not read legacy bytes at ${candidate.sourcePath}`,
727
+ };
728
+ }
611
729
  }
612
- if (pre.needsWikilinksRebuild) {
613
- await rebuildDocsWikilinks({ projectRoot });
730
+ if (apply) {
731
+ for (const { row, expected } of pre.skewed) {
732
+ await db
733
+ .update(docsAttachments)
734
+ .set({ docVersion: expected })
735
+ .where(eq(docsAttachments.id, row.id))
736
+ .run();
737
+ }
738
+ for (const { row, derived } of pre.backfillable) {
739
+ if (derived.topics.length + derived.relatedTasks.length === 0)
740
+ continue;
741
+ await db
742
+ .update(docsAttachments)
743
+ .set({
744
+ topics: linksJsonOrNull(derived.topics),
745
+ relatedTasks: linksJsonOrNull(derived.relatedTasks),
746
+ })
747
+ .where(eq(docsAttachments.id, row.id))
748
+ .run();
749
+ }
750
+ for (const { row } of pre.dangling.archivable) {
751
+ await db
752
+ .update(docsAttachments)
753
+ .set({ lifecycleStatus: 'archived' })
754
+ .where(eq(docsAttachments.id, row.id))
755
+ .run();
756
+ }
757
+ for (const { row, payload } of pre.dangling.clearable) {
758
+ const cleaned = { ...payload };
759
+ delete cleaned['path'];
760
+ await db
761
+ .update(docsAttachments)
762
+ .set({ attachmentJson: JSON.stringify(cleaned) })
763
+ .where(eq(docsAttachments.id, row.id))
764
+ .run();
765
+ }
766
+ if (pre.needsWikilinksRebuild) {
767
+ await rebuildDocsWikilinks({ projectRoot });
768
+ }
614
769
  }
615
770
  }
616
- // T13560: on apply, re-scan so the envelope's diagnostics (and the summary
617
- // computed from them) describe POST-repair state, consistent with a
618
- // follow-up dry run. Dry runs keep the pre-repair scan.
619
- const post = apply ? await scanStore(projectRoot, db, olderThanDays) : pre;
771
+ // T13560: on a mutating run, re-scan so the envelope's diagnostics (and the
772
+ // summary computed from them) describe POST-repair state, consistent with
773
+ // a follow-up dry run. Dry runs keep the pre-repair scan.
774
+ const post = mutate ? await scanStore(projectRoot, db, olderThanDays) : pre;
620
775
  const findings = post.diagnostics.reduce((sum, d) => sum + d.count, 0);
621
- const summary = apply
622
- ? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s); ${findings} finding(s) remain post-repair`
623
- : `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned (dry-run — pass --apply to execute)`;
776
+ const summary = repair
777
+ ? `docs doctor repaired ${repairs.filter((r) => r.applied).length} blob backfill(s); ` +
778
+ `${post.diagnostics.find((d) => d.kind === 'legacy-blob-coverage')?.count ?? 0} sha(s) still missing post-repair`
779
+ : apply
780
+ ? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s); ${findings} finding(s) remain post-repair`
781
+ : `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned (dry-run — pass --apply to execute)`;
624
782
  return {
625
783
  ok: true,
626
784
  report: {
627
- applied: apply,
785
+ applied: mutate,
628
786
  olderThanDays,
629
- backupReceiptPath: apply ? (opts.backupReceiptPath ?? null) : null,
787
+ backupReceiptPath: mutate ? (opts.backupReceiptPath ?? null) : null,
630
788
  diagnostics: post.diagnostics,
631
789
  repairs,
632
790
  summary,
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"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"}