codebaseiq 0.1.0

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 (432) hide show
  1. package/CHANGELOG.md +481 -0
  2. package/LICENSE +202 -0
  3. package/README.md +349 -0
  4. package/dist/augment-vue-worker.js +2 -0
  5. package/dist/call-graph-evidence-gNsxjCW8.d.ts +16 -0
  6. package/dist/change-analysis-types-CCtoCHbC.d.ts +9 -0
  7. package/dist/chunk-2Q2LW5JW.js +14 -0
  8. package/dist/chunk-2X7V4HS4.js +88 -0
  9. package/dist/chunk-34WBMAYK.js +2 -0
  10. package/dist/chunk-35NLDRZC.js +2 -0
  11. package/dist/chunk-362QOSFD.js +3 -0
  12. package/dist/chunk-3IER7Q6H.js +12 -0
  13. package/dist/chunk-3JSXXYTZ.js +345 -0
  14. package/dist/chunk-3LCDIREB.js +4 -0
  15. package/dist/chunk-476NR5B7.js +2 -0
  16. package/dist/chunk-4FC325IF.js +30 -0
  17. package/dist/chunk-4WKDMDEW.js +9 -0
  18. package/dist/chunk-4XTAUQFD.js +2 -0
  19. package/dist/chunk-5PUWMSDU.js +26 -0
  20. package/dist/chunk-5VKBFZZU.js +3 -0
  21. package/dist/chunk-6BQ3DSPK.js +2 -0
  22. package/dist/chunk-6CS3UQTN.js +3 -0
  23. package/dist/chunk-6MUIJMVL.js +6 -0
  24. package/dist/chunk-6NW7MU72.js +40 -0
  25. package/dist/chunk-6OAHRI2D.js +6 -0
  26. package/dist/chunk-6YTSKJJ3.js +2 -0
  27. package/dist/chunk-7FND7D7N.js +2 -0
  28. package/dist/chunk-7MGU3HPH.js +2 -0
  29. package/dist/chunk-7NVGT435.js +2 -0
  30. package/dist/chunk-7XAN6GKB.js +2 -0
  31. package/dist/chunk-AAQQPKCU.js +2 -0
  32. package/dist/chunk-ADTBPVUZ.js +21 -0
  33. package/dist/chunk-AKB7V7TV.js +2 -0
  34. package/dist/chunk-ANFVSJWQ.js +11 -0
  35. package/dist/chunk-B2OB55RR.js +3 -0
  36. package/dist/chunk-B3UYV66Z.js +4 -0
  37. package/dist/chunk-B75HZHUP.js +2 -0
  38. package/dist/chunk-BFFZDZQV.js +2 -0
  39. package/dist/chunk-BGBBVSH4.js +2 -0
  40. package/dist/chunk-BH5F2Q4O.js +2 -0
  41. package/dist/chunk-BJ6SQAEN.js +2 -0
  42. package/dist/chunk-BMYOV5GP.js +77 -0
  43. package/dist/chunk-BVAJLC5A.js +7 -0
  44. package/dist/chunk-C6SBF2WH.js +4 -0
  45. package/dist/chunk-C74PPYLA.js +3 -0
  46. package/dist/chunk-C7QOQX32.js +8 -0
  47. package/dist/chunk-CAUCPUOF.js +7 -0
  48. package/dist/chunk-CO5R3UNA.js +2 -0
  49. package/dist/chunk-CQP3THUZ.js +7 -0
  50. package/dist/chunk-CVYSU6BX.js +16 -0
  51. package/dist/chunk-CWONGW6P.js +3 -0
  52. package/dist/chunk-DDZ7VHWV.js +20 -0
  53. package/dist/chunk-DGXRDLV5.js +2 -0
  54. package/dist/chunk-DO6WQD2T.js +3 -0
  55. package/dist/chunk-DQMDCD24.js +2 -0
  56. package/dist/chunk-DR2LURYU.js +3 -0
  57. package/dist/chunk-DRENNWRG.js +2 -0
  58. package/dist/chunk-ECQBG7PW.js +564 -0
  59. package/dist/chunk-EF2R3WNQ.js +2 -0
  60. package/dist/chunk-ELNRLMC5.js +29 -0
  61. package/dist/chunk-EMNIHCRB.js +18 -0
  62. package/dist/chunk-ENCCHKM6.js +5 -0
  63. package/dist/chunk-EZNMUY67.js +5 -0
  64. package/dist/chunk-FAJQ7LWY.js +3 -0
  65. package/dist/chunk-FDGD5AB5.js +2 -0
  66. package/dist/chunk-FETNQCFO.js +117 -0
  67. package/dist/chunk-FM5BPL4V.js +60 -0
  68. package/dist/chunk-FQKZWM4L.js +49 -0
  69. package/dist/chunk-FW53T7EB.js +2 -0
  70. package/dist/chunk-G6XFR4ZL.js +4 -0
  71. package/dist/chunk-GCHRX4YW.js +4 -0
  72. package/dist/chunk-GTIYTDRE.js +562 -0
  73. package/dist/chunk-GTXSJDCO.js +2 -0
  74. package/dist/chunk-GW6Z3WGY.js +2 -0
  75. package/dist/chunk-H3LGFZVK.js +2 -0
  76. package/dist/chunk-HKQUXIFO.js +2 -0
  77. package/dist/chunk-HOA5YGOH.js +3 -0
  78. package/dist/chunk-HPJRBHVT.js +3 -0
  79. package/dist/chunk-HRWGYWRJ.js +49 -0
  80. package/dist/chunk-I2T2LLK2.js +4 -0
  81. package/dist/chunk-ICFDQHAM.js +3 -0
  82. package/dist/chunk-ID63777H.js +4 -0
  83. package/dist/chunk-IJ4HMYBE.js +3 -0
  84. package/dist/chunk-ILMHV3KM.js +2 -0
  85. package/dist/chunk-IOP6FWIM.js +2 -0
  86. package/dist/chunk-IRQOAM5G.js +2 -0
  87. package/dist/chunk-J77SU6VA.js +38 -0
  88. package/dist/chunk-JE3WZ6II.js +2 -0
  89. package/dist/chunk-JEJLSICM.js +4 -0
  90. package/dist/chunk-JOIRNPPY.js +2 -0
  91. package/dist/chunk-JSOYNVWH.js +3 -0
  92. package/dist/chunk-KMITESMT.js +2 -0
  93. package/dist/chunk-KUW32IRO.js +2 -0
  94. package/dist/chunk-KWVHSKHK.js +31 -0
  95. package/dist/chunk-L4NRUAGJ.js +18 -0
  96. package/dist/chunk-L57ZKWVG.js +6 -0
  97. package/dist/chunk-LTA3BRZX.js +2 -0
  98. package/dist/chunk-LU3BMVH2.js +10 -0
  99. package/dist/chunk-LZYFLFEH.js +2 -0
  100. package/dist/chunk-MOVBWNIP.js +16 -0
  101. package/dist/chunk-MVB3DAEY.js +3 -0
  102. package/dist/chunk-N3IQCBCF.js +29 -0
  103. package/dist/chunk-NAUD7LCA.js +2 -0
  104. package/dist/chunk-NCZUNH3E.js +109 -0
  105. package/dist/chunk-NE6IU5ZD.js +5 -0
  106. package/dist/chunk-NEDP5RFQ.js +60 -0
  107. package/dist/chunk-NMTSZXCL.js +2 -0
  108. package/dist/chunk-NNJ2KZZG.js +4 -0
  109. package/dist/chunk-NNO6A2PO.js +2 -0
  110. package/dist/chunk-NNOKTMZT.js +20 -0
  111. package/dist/chunk-O6QTXQPJ.js +13 -0
  112. package/dist/chunk-OANDYLJQ.js +2 -0
  113. package/dist/chunk-OFBE4NGP.js +2 -0
  114. package/dist/chunk-OGTFJ3XD.js +2 -0
  115. package/dist/chunk-OL6KJP3N.js +16 -0
  116. package/dist/chunk-OLF4MA5W.js +8 -0
  117. package/dist/chunk-OTOKVOJ3.js +2 -0
  118. package/dist/chunk-OVTS4DKB.js +2 -0
  119. package/dist/chunk-OZYRSMSH.js +3 -0
  120. package/dist/chunk-P5XHIJHI.js +2 -0
  121. package/dist/chunk-PBI2LFKH.js +2 -0
  122. package/dist/chunk-PIOMTC27.js +2 -0
  123. package/dist/chunk-PTAWHLVJ.js +6 -0
  124. package/dist/chunk-PX4RYAAK.js +2 -0
  125. package/dist/chunk-PYAB5SM6.js +7 -0
  126. package/dist/chunk-Q5ELPRKQ.js +2 -0
  127. package/dist/chunk-Q65CQ4XL.js +2 -0
  128. package/dist/chunk-Q72QSKXC.js +308 -0
  129. package/dist/chunk-QCN62RTF.js +3 -0
  130. package/dist/chunk-QDCCHMVZ.js +2 -0
  131. package/dist/chunk-QHRNXP3C.js +3 -0
  132. package/dist/chunk-QKPLA6IC.js +2 -0
  133. package/dist/chunk-QOKYJ33H.js +2 -0
  134. package/dist/chunk-QW7EP6WI.js +21 -0
  135. package/dist/chunk-R2NOK63J.js +4 -0
  136. package/dist/chunk-RBAS5ZHI.js +2 -0
  137. package/dist/chunk-RDBI2RXU.js +9 -0
  138. package/dist/chunk-RKEJ6VTF.js +73 -0
  139. package/dist/chunk-RR7SX44N.js +35 -0
  140. package/dist/chunk-RU65DDUP.js +215 -0
  141. package/dist/chunk-SELM5MER.js +2 -0
  142. package/dist/chunk-SGX43S2L.js +2 -0
  143. package/dist/chunk-SMRBZ6EC.js +2 -0
  144. package/dist/chunk-SNNWPCN7.js +4 -0
  145. package/dist/chunk-ST7V3SKN.js +2 -0
  146. package/dist/chunk-SWHMHUKF.js +2 -0
  147. package/dist/chunk-SYDJMPES.js +2 -0
  148. package/dist/chunk-SZD2KF7Q.js +2 -0
  149. package/dist/chunk-T3DGWPXM.js +3 -0
  150. package/dist/chunk-TFZB6XTM.js +239 -0
  151. package/dist/chunk-TIIC3ZE7.js +2 -0
  152. package/dist/chunk-TRRC4ZJ7.js +2 -0
  153. package/dist/chunk-TXXOEMZJ.js +2 -0
  154. package/dist/chunk-UBGWN7I4.js +2 -0
  155. package/dist/chunk-UCD3H3UZ.js +5 -0
  156. package/dist/chunk-UDS562V4.js +5 -0
  157. package/dist/chunk-UNBY47BC.js +3 -0
  158. package/dist/chunk-UP3BUZR5.js +74 -0
  159. package/dist/chunk-UXM43C7T.js +3 -0
  160. package/dist/chunk-UZGZB3VB.js +3 -0
  161. package/dist/chunk-VE5AVNMP.js +2 -0
  162. package/dist/chunk-VEXUL62T.js +2 -0
  163. package/dist/chunk-VFY6Y2H6.js +61 -0
  164. package/dist/chunk-VUIYB2V3.js +2 -0
  165. package/dist/chunk-VXYS3FZD.js +23 -0
  166. package/dist/chunk-WE5RZHZ7.js +5 -0
  167. package/dist/chunk-WMPRTGH2.js +2 -0
  168. package/dist/chunk-WOQBZPIF.js +2 -0
  169. package/dist/chunk-XLQ3GLWZ.js +2 -0
  170. package/dist/chunk-XME3HPXZ.js +2 -0
  171. package/dist/chunk-XMQ23E27.js +2 -0
  172. package/dist/chunk-XWUOUWYI.js +2 -0
  173. package/dist/chunk-XZEE23VG.js +5 -0
  174. package/dist/chunk-Y6KHROC3.js +7 -0
  175. package/dist/chunk-YESXMKX3.js +3 -0
  176. package/dist/chunk-YMGZZEW4.js +2 -0
  177. package/dist/chunk-YSNONTJ2.js +2 -0
  178. package/dist/chunk-YUKYB54I.js +1 -0
  179. package/dist/chunk-YVCIMIOC.js +12 -0
  180. package/dist/chunk-Z54RD7VL.js +3 -0
  181. package/dist/chunk-ZKX2FRS6.js +15 -0
  182. package/dist/chunk-ZMI2JSX2.js +2 -0
  183. package/dist/chunk-ZV3JV5G5.js +8 -0
  184. package/dist/chunk-ZZ3MWF33.js +4 -0
  185. package/dist/chunk-ZZXSWSN6.js +2 -0
  186. package/dist/cli-context-3SNLDYBM.js +3 -0
  187. package/dist/cli-context-T3B7W6GG.js +2 -0
  188. package/dist/cli-program-YNOXO72B.js +7 -0
  189. package/dist/cli.js +3 -0
  190. package/dist/code-DlqpBDd0.d.ts +121 -0
  191. package/dist/command-descriptors-6AOUKWW7.js +346 -0
  192. package/dist/command-descriptors-ZFKJSRUP.js +344 -0
  193. package/dist/command-panels-SZONPMLJ.js +3 -0
  194. package/dist/config-types-BNoC96J3.d.ts +560 -0
  195. package/dist/db-D7sauVFH.d.ts +95 -0
  196. package/dist/direct-navigation-DP4LVMRX.js +3 -0
  197. package/dist/direct-navigation-FLUS3BT6.js +2 -0
  198. package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
  199. package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
  200. package/dist/file-kind-BKCVMNUf.d.ts +10 -0
  201. package/dist/frontend-behavior-evidence-EfM4_9bc.d.ts +4 -0
  202. package/dist/git-history-ChNHbfZQ.d.ts +13 -0
  203. package/dist/graph-evidence-BIFqyisO.d.ts +131 -0
  204. package/dist/health-DJaZXg8I.d.ts +340 -0
  205. package/dist/index.d.ts +183 -0
  206. package/dist/index.js +2 -0
  207. package/dist/invocation-command-descriptors-QT2JMY5J.js +3 -0
  208. package/dist/invocation-command-descriptors-YN4QJEAX.js +2 -0
  209. package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
  210. package/dist/output-continuation-command-2V2SL4TD.js +2 -0
  211. package/dist/output-continuation-command-65J5IP3O.js +3 -0
  212. package/dist/postinstall.js +3 -0
  213. package/dist/project-reindex-5JOKXAXT.js +2 -0
  214. package/dist/project-reindex-UQBIKO4M.js +3 -0
  215. package/dist/queries/affected.d.ts +40 -0
  216. package/dist/queries/affected.js +2 -0
  217. package/dist/queries/anchors.d.ts +123 -0
  218. package/dist/queries/anchors.js +2 -0
  219. package/dist/queries/architecture.d.ts +166 -0
  220. package/dist/queries/architecture.js +2 -0
  221. package/dist/queries/bottlenecks.d.ts +68 -0
  222. package/dist/queries/bottlenecks.js +2 -0
  223. package/dist/queries/by-kind.d.ts +27 -0
  224. package/dist/queries/by-kind.js +2 -0
  225. package/dist/queries/call-graph.d.ts +52 -0
  226. package/dist/queries/call-graph.js +2 -0
  227. package/dist/queries/change-surface.d.ts +55 -0
  228. package/dist/queries/change-surface.js +2 -0
  229. package/dist/queries/cleanup-plan.d.ts +66 -0
  230. package/dist/queries/cleanup-plan.js +2 -0
  231. package/dist/queries/co-change.d.ts +90 -0
  232. package/dist/queries/co-change.js +2 -0
  233. package/dist/queries/code.d.ts +6 -0
  234. package/dist/queries/code.js +2 -0
  235. package/dist/queries/complexity-hotspots.d.ts +61 -0
  236. package/dist/queries/complexity-hotspots.js +2 -0
  237. package/dist/queries/complexity.d.ts +74 -0
  238. package/dist/queries/complexity.js +2 -0
  239. package/dist/queries/context.d.ts +146 -0
  240. package/dist/queries/context.js +2 -0
  241. package/dist/queries/convergence.d.ts +33 -0
  242. package/dist/queries/convergence.js +2 -0
  243. package/dist/queries/coupling.d.ts +32 -0
  244. package/dist/queries/coupling.js +2 -0
  245. package/dist/queries/cycles.d.ts +66 -0
  246. package/dist/queries/cycles.js +2 -0
  247. package/dist/queries/dataflow.d.ts +77 -0
  248. package/dist/queries/dataflow.js +2 -0
  249. package/dist/queries/dead.d.ts +58 -0
  250. package/dist/queries/dead.js +2 -0
  251. package/dist/queries/decorative-checkers.d.ts +34 -0
  252. package/dist/queries/decorative-checkers.js +2 -0
  253. package/dist/queries/deep-chains.d.ts +5 -0
  254. package/dist/queries/deep-chains.js +2 -0
  255. package/dist/queries/dependence-slice.d.ts +46 -0
  256. package/dist/queries/dependence-slice.js +2 -0
  257. package/dist/queries/dependency-depth.d.ts +49 -0
  258. package/dist/queries/dependency-depth.js +2 -0
  259. package/dist/queries/deps.d.ts +15 -0
  260. package/dist/queries/deps.js +2 -0
  261. package/dist/queries/diff-impact.d.ts +165 -0
  262. package/dist/queries/diff-impact.js +2 -0
  263. package/dist/queries/doc-drift.d.ts +115 -0
  264. package/dist/queries/doc-drift.js +2 -0
  265. package/dist/queries/drift.d.ts +79 -0
  266. package/dist/queries/drift.js +2 -0
  267. package/dist/queries/duplicate-bodies.d.ts +55 -0
  268. package/dist/queries/duplicate-bodies.js +2 -0
  269. package/dist/queries/entry-map.d.ts +121 -0
  270. package/dist/queries/entry-map.js +2 -0
  271. package/dist/queries/evidence.d.ts +70 -0
  272. package/dist/queries/evidence.js +2 -0
  273. package/dist/queries/extract-candidates.d.ts +52 -0
  274. package/dist/queries/extract-candidates.js +2 -0
  275. package/dist/queries/fan.d.ts +53 -0
  276. package/dist/queries/fan.js +2 -0
  277. package/dist/queries/files.d.ts +20 -0
  278. package/dist/queries/files.js +2 -0
  279. package/dist/queries/health.d.ts +8 -0
  280. package/dist/queries/health.js +2 -0
  281. package/dist/queries/hierarchy.d.ts +21 -0
  282. package/dist/queries/hierarchy.js +2 -0
  283. package/dist/queries/hotspots.d.ts +42 -0
  284. package/dist/queries/hotspots.js +2 -0
  285. package/dist/queries/imports.d.ts +34 -0
  286. package/dist/queries/imports.js +2 -0
  287. package/dist/queries/incomplete-migration.d.ts +90 -0
  288. package/dist/queries/incomplete-migration.js +2 -0
  289. package/dist/queries/index.d.ts +180 -0
  290. package/dist/queries/index.js +2 -0
  291. package/dist/queries/isolated.d.ts +24 -0
  292. package/dist/queries/isolated.js +2 -0
  293. package/dist/queries/locality-candidates.d.ts +51 -0
  294. package/dist/queries/locality-candidates.js +2 -0
  295. package/dist/queries/members.d.ts +21 -0
  296. package/dist/queries/members.js +2 -0
  297. package/dist/queries/methods.d.ts +43 -0
  298. package/dist/queries/methods.js +2 -0
  299. package/dist/queries/not-implemented.d.ts +33 -0
  300. package/dist/queries/not-implemented.js +2 -0
  301. package/dist/queries/outline.d.ts +22 -0
  302. package/dist/queries/outline.js +2 -0
  303. package/dist/queries/passthrough-candidates.d.ts +41 -0
  304. package/dist/queries/passthrough-candidates.js +2 -0
  305. package/dist/queries/plan-context.d.ts +33 -0
  306. package/dist/queries/plan-context.js +2 -0
  307. package/dist/queries/react-component-duplicates.d.ts +39 -0
  308. package/dist/queries/react-component-duplicates.js +2 -0
  309. package/dist/queries/react-hook-candidates.d.ts +44 -0
  310. package/dist/queries/react-hook-candidates.js +2 -0
  311. package/dist/queries/react-large-component-pressure.d.ts +34 -0
  312. package/dist/queries/react-large-component-pressure.js +2 -0
  313. package/dist/queries/recent-duplicates.d.ts +79 -0
  314. package/dist/queries/recent-duplicates.js +2 -0
  315. package/dist/queries/redundant-reexports.d.ts +37 -0
  316. package/dist/queries/redundant-reexports.js +2 -0
  317. package/dist/queries/reference-neighborhood.d.ts +4 -0
  318. package/dist/queries/reference-neighborhood.js +2 -0
  319. package/dist/queries/reference-reachability.d.ts +48 -0
  320. package/dist/queries/reference-reachability.js +2 -0
  321. package/dist/queries/refs.d.ts +13 -0
  322. package/dist/queries/refs.js +2 -0
  323. package/dist/queries/self-audit.d.ts +65 -0
  324. package/dist/queries/self-audit.js +2 -0
  325. package/dist/queries/similar-chains.d.ts +48 -0
  326. package/dist/queries/similar-chains.js +2 -0
  327. package/dist/queries/similar-files.d.ts +35 -0
  328. package/dist/queries/similar-files.js +2 -0
  329. package/dist/queries/similar-signatures.d.ts +46 -0
  330. package/dist/queries/similar-signatures.js +2 -0
  331. package/dist/queries/similar.d.ts +187 -0
  332. package/dist/queries/similar.js +2 -0
  333. package/dist/queries/slice.d.ts +4 -0
  334. package/dist/queries/slice.js +2 -0
  335. package/dist/queries/source-inspection.d.ts +209 -0
  336. package/dist/queries/source-inspection.js +2 -0
  337. package/dist/queries/source-search.d.ts +85 -0
  338. package/dist/queries/source-search.js +2 -0
  339. package/dist/queries/stale-abstractions.d.ts +72 -0
  340. package/dist/queries/stale-abstractions.js +2 -0
  341. package/dist/queries/stats.d.ts +15 -0
  342. package/dist/queries/stats.js +2 -0
  343. package/dist/queries/surface.d.ts +22 -0
  344. package/dist/queries/surface.js +2 -0
  345. package/dist/queries/symbols.d.ts +14 -0
  346. package/dist/queries/symbols.js +2 -0
  347. package/dist/queries/system-map.d.ts +449 -0
  348. package/dist/queries/system-map.js +2 -0
  349. package/dist/queries/system.d.ts +21 -0
  350. package/dist/queries/system.js +2 -0
  351. package/dist/queries/test-quality.d.ts +56 -0
  352. package/dist/queries/test-quality.js +2 -0
  353. package/dist/queries/trace.d.ts +68 -0
  354. package/dist/queries/trace.js +2 -0
  355. package/dist/queries/twin-ab.d.ts +66 -0
  356. package/dist/queries/twin-ab.js +2 -0
  357. package/dist/queries/twin-drift.d.ts +119 -0
  358. package/dist/queries/twin-drift.js +2 -0
  359. package/dist/queries/unused-imports.d.ts +4 -0
  360. package/dist/queries/unused-imports.js +2 -0
  361. package/dist/queries/unused-params.d.ts +38 -0
  362. package/dist/queries/unused-params.js +2 -0
  363. package/dist/queries/value-flow.d.ts +42 -0
  364. package/dist/queries/value-flow.js +2 -0
  365. package/dist/queries/vue-component-duplicates.d.ts +43 -0
  366. package/dist/queries/vue-component-duplicates.js +2 -0
  367. package/dist/queries/vue-composable-candidates.d.ts +44 -0
  368. package/dist/queries/vue-composable-candidates.js +2 -0
  369. package/dist/queries/vue-large-view-pressure.d.ts +41 -0
  370. package/dist/queries/vue-large-view-pressure.js +2 -0
  371. package/dist/queries/wrapper-candidates.d.ts +34 -0
  372. package/dist/queries/wrapper-candidates.js +2 -0
  373. package/dist/reindex-worker.js +3 -0
  374. package/dist/reindex.d.ts +254 -0
  375. package/dist/reindex.js +298 -0
  376. package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
  377. package/dist/runtime.d.ts +555 -0
  378. package/dist/runtime.js +4 -0
  379. package/dist/rust-semantic-session-server.js +2 -0
  380. package/dist/rust-semantic-session-worker.js +2 -0
  381. package/dist/rust-semantic-worker.js +2 -0
  382. package/dist/scip-cli-B7N3haxa.d.ts +67 -0
  383. package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
  384. package/dist/symbol-types-BIQwfoAx.d.ts +74 -0
  385. package/dist/typescript-mailbox-worker.js +2 -0
  386. package/dist/watch-server.js +8 -0
  387. package/docs/AGENT_GUIDE.md +148 -0
  388. package/docs/AI_FAILURE_MODES.md +43 -0
  389. package/docs/API.md +40 -0
  390. package/docs/API_EVOLUTION.md +77 -0
  391. package/docs/CLI_JSON_OUTPUT.md +389 -0
  392. package/docs/COMMAND_REFERENCE.md +294 -0
  393. package/docs/CONFIGURATION_WRITE_SAFETY.md +131 -0
  394. package/docs/DETECTOR_GUIDE.md +46 -0
  395. package/docs/DURABILITY.md +159 -0
  396. package/docs/INDEX_GENERATIONS.md +167 -0
  397. package/docs/LOCK_PROTOCOL.md +133 -0
  398. package/docs/MAILBOX_LIFECYCLE.md +224 -0
  399. package/docs/REGEX_POLICY.md +36 -0
  400. package/docs/REINDEX_METADATA_COMPATIBILITY.md +104 -0
  401. package/docs/RUST_DURABLE_SESSION_PROTOCOL.md +126 -0
  402. package/docs/SECURITY_MODEL.md +125 -0
  403. package/docs/TELEMETRY_RETENTION.md +84 -0
  404. package/docs/TIME_SEMANTICS.md +77 -0
  405. package/docs/WATCH_REFRESH_REQUESTS.md +123 -0
  406. package/docs/WINDOWS_SIDECAR_RELEASE.md +424 -0
  407. package/docs/accuracy-audit-checklist.md +304 -0
  408. package/docs/accuracy-hardening-goal.md +500 -0
  409. package/docs/analyzer-inventory.md +78 -0
  410. package/docs/analyzer-validation-protocol.md +84 -0
  411. package/docs/architecture-coherence-vision.md +254 -0
  412. package/docs/assets/codebaseiq-logo-dark.svg +21 -0
  413. package/docs/assets/codebaseiq-logo.svg +24 -0
  414. package/docs/locality-analyzer-design.md +193 -0
  415. package/docs/schemas/cli-json-envelope.schema.json +237 -0
  416. package/docs/schemas/cli-output-page.schema.json +104 -0
  417. package/docs/schemas/npm-release-state.schema.json +146 -0
  418. package/docs/schemas/observation-receipt.schema.json +164 -0
  419. package/docs/schemas/project-config.schema.json +318 -0
  420. package/docs/schemas/suppression-record.schema.json +79 -0
  421. package/docs/schemas/windows-sidecar-provenance.schema.json +137 -0
  422. package/package.json +482 -0
  423. package/scripts/build-codebaseiq-windows.mjs +197 -0
  424. package/scripts/codebaseiq-windows-provenance.mjs +364 -0
  425. package/scripts/evidence-product-contract.mjs +197 -0
  426. package/scripts/verify-codebaseiq-windows.mjs +29 -0
  427. package/skills/codebaseiq/SKILL.md +75 -0
  428. package/skills/codebaseiq/agents/openai.yaml +4 -0
  429. package/skills/codebaseiq-explore/SKILL.md +34 -0
  430. package/skills/codebaseiq-explore/agents/openai.yaml +4 -0
  431. package/skills/concrete-plan/SKILL.md +79 -0
  432. package/skills/concrete-plan/agents/openai.yaml +4 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,481 @@
1
+ # Changelog
2
+
3
+ All notable changes to `codebaseiq` are documented here.
4
+
5
+ `codebaseiq` was previously published as `scip-query`. The rename was taken as a
6
+ clean break rather than a compatibility-preserving alias, so the version line
7
+ restarts at 0.1.0. This is not a regression from `scip-query@0.26.0`: the two
8
+ names are separate packages, and no `scip-query` version is superseded in place.
9
+ Entries at 0.20.0 and below record the predecessor package's history, retained
10
+ for continuity; they document releases of `scip-query`, not of `codebaseiq`.
11
+
12
+ ## [0.1.0] — 2026-09-22
13
+
14
+ First release under the `codebaseiq` name. The entries in this section cover
15
+ behavior changes made since `scip-query@0.20.0`.
16
+
17
+ ### Added (background CPU load controls)
18
+
19
+ - **`CODEBASEIQ_PROCESS_PRIORITY=low|idle` runs codebaseiq below foreground
20
+ work.** The CLI, the watch server, and the durable Rust session server lower
21
+ their own OS scheduling priority at startup (`low` maps to below-normal,
22
+ `idle` to the idle class); spawned indexers, health-phase subprocesses, and
23
+ semantic helpers inherit it on Windows and POSIX. Off by default; output is
24
+ unchanged.
25
+ - **`CODEBASEIQ_MAX_CONCURRENCY=<n>` caps adaptive subprocess fan-out.** It is
26
+ a hard ceiling over the health-phase and diff-impact batch resolvers,
27
+ bounding both the adaptive defaults and explicit per-workload overrides such
28
+ as `CODEBASEIQ_HEALTH_CONCURRENCY`. Off by default.
29
+
30
+ ### Fixes (Windows index write and publication)
31
+
32
+ - **Reindex no longer fails with `EPERM: operation not permitted, fsync` on
33
+ Windows.** Durable artifact cloning flushed the freshly published generation
34
+ file through a read-only descriptor after applying its `0o444` mode;
35
+ `FlushFileBuffers` requires write access, so every publication died before a
36
+ generation record existed. Windows now flushes through a writable descriptor
37
+ before the read-only mode lands (clearing and restoring an inherited
38
+ read-only attribute when necessary), and the verified-binary staging flush
39
+ uses a writable descriptor the same way. POSIX ordering is unchanged.
40
+ - **Transient antivirus sharing violations no longer abort publication.**
41
+ Renames and deletes into the cache (generation staging directories, the
42
+ stable `index.db`/`index.scip`/`meta.json` mirrors, atomic JSON publication,
43
+ verified-binary promotion, shared-generation install/rollback) retry
44
+ `EPERM`/`EACCES`/`EBUSY` on a bounded ~5s backoff schedule, on Windows only.
45
+ A run workspace the scanner still holds is reported once and swept by the
46
+ next run instead of overwriting a successful reindex outcome.
47
+ - **Indexers that disagree on Windows project-root spelling merge into one
48
+ project.** SCIP `metadata.projectRoot` comparison now canonicalizes
49
+ drive-letter case, percent-encoded drive colons, backslash separators, and
50
+ trailing slashes (`file:///c%3A/…` ≡ `file:///C:/…`); merged output records
51
+ the canonical root. The same equivalence governs shared-generation source
52
+ validation and publication, so a lowercase-drive `scip-typescript` root no
53
+ longer silently disables worktree sharing.
54
+ - **`scip-python` starts on Windows again.** The indexer builds
55
+ `new RegExp(path.sep)` at module load, a guaranteed `SyntaxError` on
56
+ Windows; script-bin invocations of the scip-python family now inject a
57
+ preload that rewrites only that always-invalid lone-backslash pattern.
58
+ - **`codebaseiq reindex` failures print their cause chain and stack when
59
+ `CODEBASEIQ_DEBUG` is set** instead of a bare `EPERM` one-liner.
60
+ - A `windows-latest` CI job now exercises the durable-write, retry, root
61
+ merge, and generation publication contracts.
62
+
63
+ ### Fixes (Windows impact and health reliability)
64
+
65
+ - **Diff impact resolves legacy Windows document keys without changing their
66
+ SQL identity.** Git paths are matched against slash-normalized indexed paths,
67
+ while queries continue to use the original database key; future sanitized
68
+ SCIP documents persist canonical forward-slash relative paths.
69
+ - **Health analysis releases generation readers and cancelled workers.**
70
+ Isolated database and semantic-provider resources close before retention,
71
+ cancellation waits for runner shutdown, and repeated owner checks reuse the
72
+ cached current-process identity instead of spawning a Windows lookup on every
73
+ lock poll.
74
+ - **TypeScript checker failures no longer publish authoritative empty graph
75
+ evidence.** Failed origin-file reference scans and per-caller callee scans
76
+ are recorded as incomplete, while missing compiler-provider coverage is
77
+ recorded as unavailable. Both states are omitted from durable negative caches
78
+ and excluded from dead-code and other cardinality-based cleanup findings.
79
+ Generic caller/callee queries retain any known rows while reporting incomplete
80
+ or unavailable coverage, and health reports surface the affected phases. The
81
+ semantic mailbox now uses protocol and operation namespace v4 (while retaining
82
+ the intentional legacy-v2 adapter); health-report cache v6 and prewarm marker
83
+ v3 invalidate older negative evidence.
84
+
85
+ ---
86
+
87
+ ## Predecessor history — published as `scip-query`
88
+
89
+ Every release below was published under the `scip-query` name. This history
90
+ starts at 0.11.0; entries cover behavior changes made since the 0.10.12 release.
91
+
92
+ ## [0.20.0]
93
+
94
+ ### Maintained native SQLite distribution
95
+
96
+ - `better-sqlite3` is upgraded to 13.0.2, whose N-API binaries ship inside
97
+ the dependency tarball. New installs no longer resolve the abandoned
98
+ `prebuild-install` helper. The repository explicitly denies npm's inferred
99
+ `node-gyp rebuild` fallback because the bundled binary needs no lifecycle
100
+ setup.
101
+ - The public runtime floor is now Node.js 22, matching the required native
102
+ dependency instead of advertising the obsolete Node 18 contract; every
103
+ published bundle now targets the same runtime floor. Install output and the
104
+ README recommend Node.js 24 LTS while distinguishing it from the supported
105
+ minimum.
106
+ - Runtime-contract tests and a Node 22/24/26 CI matrix exercise a real SQLite
107
+ database, while install guidance distinguishes bundled SQLite binaries from
108
+ the remaining Tree-sitter lifecycle scripts.
109
+
110
+ ## [0.19.10]
111
+
112
+ ### Safer setup and removal
113
+
114
+ - Real uninstall now requires an explicit global or project scope, while a
115
+ scope-free dry run safely previews both. Project-hook removal no longer
116
+ depends on resolving an install-only command identity, and ordinary
117
+ uninstall output summarizes retained personal skills unless `--verbose` is
118
+ requested.
119
+ - Guided setup requires an interactive terminal and rejects conflicting JSON
120
+ or automatic modes. Hook removal has a non-writing preview, rejects
121
+ installation-only force semantics, and reports removal-specific outcomes.
122
+ - Watch timing options are explicitly process-local: status and stop reject
123
+ them, and an already-running daemon refuses overrides it cannot apply.
124
+
125
+ ### Honest outcomes and recoverable evidence
126
+
127
+ - Partial reindex results identify every skipped language and reason. Project
128
+ initialization and agent setup derive their messages from actual
129
+ written/unchanged/skipped results instead of reporting categorical success.
130
+ - Suppression receipts disclose their effective scope, reason code, evidence
131
+ count, expiration, and revision.
132
+ - Verified cleanup application has a same-plan `--dry-run` that names exact
133
+ files, symbols, ranges, deleted lines, and the verification oracle before
134
+ the source-mutation boundary.
135
+ - The final human pagination marker now names transport completion separately
136
+ from command-result coverage, preventing a fully retrieved bounded or
137
+ sampled result from being mistaken for complete semantic evidence.
138
+
139
+ ## [0.19.9]
140
+
141
+ ### Agent-readable command output
142
+
143
+ - Human output is now the default evidence format for agents. `code` renders
144
+ only the resolved path, one-based range, symbol identity, language, and
145
+ whitespace-preserved numbered source; complete output no longer receives a
146
+ pagination wrapper merely because a page size was supplied.
147
+ - Every public JSON-capable command exposes the same `--json`,
148
+ `--result-only`, and `--compact` modes. The stable envelope remains
149
+ compatible for programs, while result-only output removes transport
150
+ metadata and `code` returns a minimal ordered line representation.
151
+ - Partial human pages retain multiline hierarchy and split at complete line
152
+ boundaries whenever possible. Exact resumable continuations remain
153
+ mandatory for genuinely partial output, and malformed numeric flags now
154
+ fail explicitly instead of accepting a numeric prefix.
155
+ - Bundled Claude, Codex, and shared-agent skills prefer ordinary output,
156
+ reserve JSON for programmatic consumers, and no longer preselect page sizes
157
+ or recommend compact JSON for model-readable evidence.
158
+
159
+ ### Durable state and concurrency
160
+
161
+ - Atomic file replacement, committed outcome and suppression records,
162
+ generation pointers, shared-cache leases, watcher refresh requests, and
163
+ semantic mailboxes now preserve explicit operation identity across crashes,
164
+ retries, concurrent owners, stale completions, and partial legacy records.
165
+ - SQLite and SCIP publication use immutable generation artifacts with
166
+ conservative recovery, retained-reader protection, corruption detection,
167
+ and bounded garbage collection. Incremental publication rejects incomplete
168
+ affected sets and preserves rich metadata owned by unaffected documents.
169
+ - Stop hooks and diff-gate runs share bounded evidence leases and execution
170
+ deadlines. Automatic suppression requires versioned policy evidence,
171
+ expiration and content-hash checks, and anomaly escalation instead of
172
+ treating repository-writable metadata as independent authority.
173
+
174
+ ### Query performance and evidence integrity
175
+
176
+ - SQL-backed navigation, graph-risk, file-resolution, coupling, and re-export
177
+ analysis reuse prepared data products, parameterized scopes, bounded
178
+ batches, and indexed lookup paths instead of repeated broad scans. Recorded
179
+ before/after ledgers preserve command-output equivalence alongside the
180
+ measured latency gains.
181
+ - Watch refreshes distinguish rebuilt and reused work, suppress redundant
182
+ requests, preserve cache ownership, and avoid competing manual reindexes.
183
+ Diff-gate containment now completes the current repository-wide change in
184
+ seconds rather than allowing duplicate long-running detector processes.
185
+ - Public configuration, reindex metadata, committed records, TypeScript
186
+ declarations, schemas, command documentation, and downstream consumer
187
+ fixtures were evolved together with explicit compatibility handling.
188
+
189
+ ## [0.19.8]
190
+
191
+ ### Complete agent evidence
192
+
193
+ - Every descriptor-backed command now supports resumable output pages backed
194
+ by one immutable private snapshot. Pages report exact character totals,
195
+ bind cursors to the original invocation and content hash, and emit the exact
196
+ continuation command without rerunning a nondeterministic query.
197
+ - Incomplete machine-readable and human pages identify themselves as
198
+ incomplete evidence. Generated project guidance requires agents to retrieve
199
+ every page before drawing a conclusion, changing evidence commands, or
200
+ reporting completion.
201
+
202
+ ### Diff-gate containment
203
+
204
+ - CLI and Stop-hook gates now share a per-project single-flight lease, so
205
+ overlapping agents report the live owner instead of multiplying detector
206
+ work.
207
+ - Gate evaluation runs in an owned child with a finite 60-second deadline, or
208
+ 180 seconds with `--full`. Timeout terminates and reaps the child and fails
209
+ closed.
210
+ - Historical finding reconciliation replays at most one comparison base per
211
+ foreground gate, runs only the detectors needed for that base, and leaves
212
+ deferred findings open with exact counts.
213
+
214
+ ### Security and operational hardening
215
+
216
+ - Repository-controlled paths, tools, regular expressions, persisted records,
217
+ subprocesses, and output now cross explicit containment, size, time, and
218
+ trust boundaries. Terminal text is rendered inert, and destructive cache
219
+ operations require verified ownership.
220
+ - Watchers and semantic mailboxes back off while idle, suppress redundant
221
+ refreshes, and preserve one canonical source identity across filesystem
222
+ aliases.
223
+ - Production dependency audit and release preflight now reject high-severity
224
+ production advisories; the shipped production dependency tree is clean.
225
+
226
+ ## [0.19.6]
227
+
228
+ ### State and process resilience
229
+
230
+ - Index publication now binds SQLite, SCIP, metadata, cursors, semantic
231
+ sessions, and retained generations to one immutable generation identity.
232
+ Shared-cache hydration and lease updates preserve current ownership across
233
+ concurrent writers and crash recovery.
234
+ - Watch/reindex locks, refresh requests, TypeScript and Rust mailboxes,
235
+ evidence counters, suppressions, and outcome records now use explicit
236
+ operation identities, bounded queues, durable publication, conservative
237
+ owner reclamation, retry-safe transitions, and versioned compatibility
238
+ readers.
239
+ - Child processes, workers, verified downloads, and Rust LSP framing have
240
+ finite time, byte, output, and shutdown budgets with typed timeout,
241
+ overflow, cancellation, and recovery outcomes.
242
+
243
+ ### Public and durable contracts
244
+
245
+ - CLI JSON, project configuration, reindex metadata, committed suppression and
246
+ outcome files, and Rust durable-session messages have explicit current,
247
+ legacy, malformed, and future-version policies. Incomplete history and
248
+ partial metadata disclose their reduced capabilities instead of silently
249
+ acting current.
250
+ - The published TypeScript declaration surface is checked across all 72
251
+ export paths and 871 declarations, including transitive declaration chunks
252
+ and a downstream consumer compile fixture.
253
+
254
+ ### Windows sidecar and npm release
255
+
256
+ - The Windows sidecar carries a versioned provenance manifest binding its
257
+ immutable SCIP source commit, pinned Go toolchain, build contract, PE
258
+ machines, sizes, and SHA-256 hashes. Build, sidecar pack, and release all
259
+ reject stale, partial, swapped, or unverifiable binaries.
260
+ - Existing npm versions are accepted only after local pack reports, registry
261
+ metadata, downloaded tarball hashes, package coordinates, and provenance
262
+ bytes agree. Only an explicit npm `E404` authorizes first publication;
263
+ ambiguity and concurrent different-content winners fail closed.
264
+ - `npm run release:npm` owns the complete two-package workflow: test/build/API
265
+ preflight and both packs from one clean, unchanged Git revision precede
266
+ registry mutation, the sidecar publishes and verifies first, the main
267
+ package publishes and verifies last, and a durable schema-versioned local
268
+ state record binds the canonical HTTPS registry, source revision, and exact
269
+ artifacts so every partial state is observable and safely retryable. Direct
270
+ `npm publish` is guarded because it cannot provide that cross-package
271
+ recovery contract.
272
+
273
+ ## [0.19.5]
274
+
275
+ ### Agent evidence and workflows
276
+
277
+ - Every public command now declares an agent-facing contract describing its
278
+ inputs, returned units, evidence class, and default coverage. JSON envelopes
279
+ report whether results are complete, bounded, sampled, or unknown; compact
280
+ summaries preserve the identities agents need without blind line clipping.
281
+ - `refs` supports stable, index-generation-bound pagination with explicit
282
+ totals and continuation cursors. Heavy navigation, planning, and diff-gate
283
+ commands expose compact machine-readable output and concise agent summaries.
284
+ - Claude Code hooks reject unsafe `head`, `tail`, and line-range truncation when
285
+ a compact or paginated alternative exists, and provide one context-window
286
+ reminder to reconsider native text search for relationship and completeness
287
+ questions. Shared guidance is expressed as moment-based evidence gates.
288
+ - The bundled planning workflow now has a short ordinary path and a separate
289
+ high-assurance certificate. Skill descriptions use problem-language trigger
290
+ phrases, and native file reads remain available for literal source facts.
291
+
292
+ ### Architecture and release operations
293
+
294
+ - Architecture enforcement distinguishes production ownership from tests,
295
+ preserves boundary-specific file ceilings, and detects additional coarse
296
+ cycles without weakening the repository's declared layer policy.
297
+ - The main npm publish lifecycle invokes the Windows sidecar publisher directly
298
+ while keeping dry runs and validation paths registry-safe.
299
+
300
+ ## [0.19.3]
301
+
302
+ ### Performance and operations
303
+
304
+ - Watchers now suppress a queued cooldown reindex when the completed index's
305
+ fingerprint proves the queued file events are already represented. Stale or
306
+ unavailable freshness still preserves the follow-up refresh.
307
+ - A bounded two-segment activity ledger powers rolling 24-hour watch status
308
+ counts for rebuilt, reused, failed, and suppressed refreshes plus estimated
309
+ logical artifact bytes. The estimate is explicitly not physical SSD writes.
310
+ - Source watching retries with 500 ms polling only when the host refuses an
311
+ event-backed subscription with `EMFILE`, preserving refresh correctness
312
+ without adding polling I/O to the normal path.
313
+
314
+ ## [0.19.2]
315
+
316
+ ### Fixes
317
+
318
+ - Watch-service reuse no longer reports a startup warning when a sandboxed
319
+ client cannot update the optional activity timestamp in the user cache.
320
+ - Reindexing now removes abandoned staging workspaces under the exclusive
321
+ reindex lock. Affected-set history stores compact calibration summaries and
322
+ rotates at 8 MiB with one previous segment instead of appending unbounded
323
+ full records; the complete latest status record is unchanged.
324
+
325
+ ## [0.19.0]
326
+
327
+ ### Architecture coherence
328
+
329
+ - New `architecture` query and CLI command evaluates compiler-resolved imports and reexports against a declared layer policy, reporting forbidden, undeclared, reciprocal, and cyclic dependencies with machine-readable evidence.
330
+ - Architecture policy can require complete file classification and an acyclic layer graph. `diff-gate` now ratchets architecture findings so changed code cannot introduce new boundary violations.
331
+ - The codebaseiq repository now enforces a complete 14-layer target architecture: all source files are classified, every allowed relationship is explicit, and architectural cycles and implicit dependencies are rejected.
332
+
333
+ ### Internal boundaries
334
+
335
+ - Project inputs, indexer toolchains, cache layout, watcher state, file resolution, and semantic evidence now have focused domain, platform, source, query, and symbol contracts instead of depending on mixed runtime or resolution modules.
336
+ - Git worktree-aware watcher behavior and shared-generation cache reuse retain their existing operational contracts while their host mechanisms move behind the platform boundary.
337
+ - Architecture guidance, planning records, command documentation, skills, tests, and committed outcome/suppression records now describe and protect the target structure.
338
+
339
+ ## [0.18.0]
340
+
341
+ ### Skills (semiformal reasoning certificates)
342
+
343
+ - The skill suite now enforces a semiformal certificate discipline calibrated against a 14-ticket plan→implement→review retrospective: `scip-concrete-plan` produces contextual definitions, numbered premises with complete state-authority writer/reader enumeration, counterexample attacks with permanent `HOLE`/`HELD` outcomes, a coverage matrix, per-step deployability declarations, and a derived verdict with hole counts. `scip-verify` refutes a PASS with executed probes before claiming it; `scip-debug` requires a rival hypothesis and an executed discriminator for cross-file root causes; `scip-integrity-audit` attempts the defense before filing an accusation and derives a counted verdict; `scip-maintainability` requires a unifying definition plus a strongest-dissenter check before consolidation; `scip-cleanup-audit` refutes deletions against known blind spots; `scip-claim-audit` and `scip-api-impact` gain completeness counts and consumer disposition tables; `codebaseiq-explore` distinguishes descriptions (citations) from conclusions (discriminators).
344
+ - New skill `scip-root-cause`: diagnose the design flaw behind a family of recurring bugs — source-traced bug-family table, falsifiable flaw hypothesis with a rival kill-list, retrodiction plus executed latent-instance hunts, and a four-rung minimal-invasiveness remedy ladder that hands off to `scip-concrete-plan`.
345
+
346
+ ### Fixes (Windows indexer spawn)
347
+
348
+ - Language indexers no longer fail with `spawn EFTYPE` on Windows. Resolved `.js`/`.cjs`/`.mjs` bin targets (the bundled `@sourcegraph/scip-typescript` bin) now run through the current Node executable, Windows binary resolution only accepts real `.exe`/`.com` executables from `where` (npm's `.cmd`/sh shims fall through to the bundled bin), and npm auto-install runs through the shell on Windows. Mechanism-verified with unit tests and a macOS smoke run; not yet confirmed on a Windows machine.
349
+
350
+ ## [0.17.2]
351
+
352
+ ### Performance (agent command latency)
353
+
354
+ - `code`, `outline`, and `refs` now load leaf command descriptors instead of initializing the complete command catalog, while invocation-scoped Git/worktree context and generation freshness are reused across command setup. The measured navigation campaign records stable output contracts across clean, dirty, and watcher-backed runs.
355
+ - `affected` batches compiler-backed caller evidence once per breadth-first frontier. `plan-context` reuses those batched callers, single-file dependency edges already computed by `system`, and the invocation's resolved Git HEAD instead of repeating equivalent graph and Git work.
356
+ - `diff-impact` derives changed names, line ranges, renames, and deletions from five shared Git reads instead of nine overlapping subprocesses. The final campaign snapshot reduced warmed medians from 1,722 ms to 802 ms for `plan-context`, 941 ms to 304 ms for `affected`, and 1,342 ms to 575 ms for `diff-impact`; same-build A/B runs preserve byte-identical output for each retained change.
357
+
358
+ ### Fixes (worktree freshness and watcher reuse)
359
+
360
+ - Worktree identity, shared-generation leases, CLI preparation, and watch-service reuse now carry one resolved Git context through the invocation. Cache trust is rejected when committed trees or worktree ownership differ, while unchanged generations avoid redundant hashing and subprocess probes.
361
+
362
+ ## [0.17.1]
363
+
364
+ ### Fixes (worktree watcher isolation)
365
+
366
+ - Automatic refresh now persists and validates the Git worktree identity of each daemon. Every default-managed worktree starts or reuses its own watcher, watches only its own checkout, and sends reindex output only to its own writable cache; portable source subscriptions detect ordinary unstaged edits on Node 18 Linux, Git polling independently detects `HEAD` and index changes, and `watch --status` reports the bound root and worktree ID.
367
+
368
+ ## [0.17.0]
369
+
370
+ ### Performance (Git worktree warm starts)
371
+
372
+ - Clean Git worktrees at the same repository snapshot now warm-start from one immutable shared index generation while retaining separate writable local caches. Concurrent cold worktrees coordinate one generation build, dirty edits stay isolated to their checkout, safe content-keyed evidence reads through a bounded repository database, and managed caches for removed worktrees are reclaimed automatically. `CODEBASEIQ_SHARED_CACHE=0` disables the behavior, and explicit cache/database overrides remain private.
373
+ - Shared-generation reuse now verifies producer compatibility, complete peer artifacts, SQLite state, and full source stability. Hydration rolls back the complete prior local cache on failure; cleanup coordinates with lease writes and protects live watcher/build/hydration processes, ownership checksums, and physical path containment.
374
+
375
+ ### Accuracy (effectiveness verification)
376
+
377
+ - Effectiveness events now preserve the resolved Git comparison commit. After `HEAD` advances, a clean gate run replays the original comparison before marking a finding fixed: committed defects remain open, committed repairs receive verified credit, moving refs cannot change the baseline retroactively, and dirty or unavailable replays remain pending. Legacy events stay readable and retain their existing conservative classification.
378
+
379
+ ## [0.16.1]
380
+
381
+ ### Fixes
382
+
383
+ - Outcome history now uses one committed `.codebaseiq/events/*.json` file per event instead of appending to `.codebaseiq/ledger/events.jsonl`. This makes concurrent branch writes touch independent paths. The reader remains backward compatible, and the next gate write migrates valid legacy records before removing the old file and its scoped merge rule.
384
+
385
+ ## [0.16.0]
386
+
387
+ ### Notable (setup and automatic indexing)
388
+
389
+ - **`setup` is now an interactive project wizard.** In a terminal, `codebaseiq setup` presents a keyboard-controlled checklist for detected language indexers, detected Tree-sitter AST parsers, bundled agent skills, checkout-local hooks, automatic refresh, and the optional initial health audit. `--yes` accepts the recommended defaults for automation, while `--json` remains non-interactive. The redraw logic keeps the checklist anchored while moving with the arrow keys.
390
+ - **Detected AST parser packages can be installed by setup.** Setup installs the Tree-sitter runtime and detected language grammars using the versions pinned by `codebaseiq`, then probes them again and reports any recovery action. Developers no longer need to discover the package-specific npm commands themselves.
391
+ - **Automatic indexing is demand-started and project-local.** Setup enables automatic refresh unless an existing project explicitly opted out, starts or reuses the checkout's watch service, and verifies the service deadline and language capabilities. The service wakes when the project is used, idles when there is no work, and keeps hook preferences in ignored checkout-local files rather than repository records.
392
+ - **Setup guidance now describes the optimal TypeScript and Rust paths.** The bundled `scip-setup` skill and README cover TypeScript SCIP indexing, persistent `ts-morph` semantics, conditional workspace project shards, Rust SCIP indexing through `rust-analyzer`, durable demand-started Rust semantic sessions, Tree-sitter fallbacks, capability verification, and the distinction between committed records, checkout preferences, and user-environment changes.
393
+
394
+ ### Performance (eliminating repeated work)
395
+
396
+ - **Incremental TypeScript SCIP documents and semantic fragments.** TypeScript indexing persists per-document SCIP fragments, computes a conservative affected-file closure, and republishes only affected documents into generation-based SQLite indexes. Shadow-mode measurements expose predicted versus actually changed documents before the affected-set optimization is trusted for a project.
397
+ - **Persistent TypeScript semantic sessions.** Repeated semantic queries reuse loaded TypeScript projects and exact caller/reference fragments across requests and processes. Workspace mode updates only the owned project and invalidates dependent projects when necessary; a single-project repository continues to use the compiler project's own incremental behavior rather than being artificially split.
398
+ - **Generation-based SQLite publication and repair.** Incremental index updates publish an immutable generation and atomically make it current, retain a recovery generation, and diagnose or repair damaged generation state instead of forcing every refresh through a full rebuild.
399
+ - **Durable Rust semantic reuse.** Rust semantic queries reuse complete `rust-analyzer` responses through a readiness-aware durable session, with ordered protocol barriers, deadline-bounded synchronization, stale-response rejection, and worker fallback. A stopped durable session in `status` means demand-idle, not unavailable.
400
+ - **Faster cold TypeScript dead analysis and `twin-drift`.** Exact TypeScript caller resolution is batched and cached, while full `twin-drift` scans prune impossible candidates earlier and use indexed lookup paths.
401
+ - **New repeated-work instrumentation.** Work identities and `work-audit` profiles attribute repeated computation to subsystems so optimization candidates can be selected from measured reuse misses instead of command-level wall time alone.
402
+
403
+ ### Accuracy and credibility
404
+
405
+ - **TypeScript detector certification.** Factual dead-code evidence and TypeScript graph, architecture, React, and Vue signals gained calibrated fixtures and evidence contracts. Vue reference identities are qualified correctly, navigation callers exclude reference-only edges, and capability output distinguishes syntax-only checks from semantic verification.
406
+ - **Rust detector hardening.** Dead-code evidence now preserves implicit imports and excludes trait requirements, trait implementations, convention-driven twins, and trait wrappers where the apparent duplicate or unused symbol is part of Rust's language contract. Signature candidates are restricted to cases the available evidence can support.
407
+ - **Python detector hardening.** Python liveness now preserves runtime exports, protocol hooks, and model/framework conventions that consume symbols indirectly.
408
+ - **Investigatory health findings are labeled as candidates.** Composite health output discloses capability limits and keeps heuristic findings investigatory instead of presenting them as automatically actionable facts. Accuracy roadmaps now record which detector families were calibrated, certified, unsupported, or deliberately limited.
409
+
410
+ ### Fixes and maintenance
411
+
412
+ - Setup now applies automatic-refresh defaults consistently and keeps local setup preferences separate from committed repository records.
413
+ - Full-result query limits remain within SQLite's parameter limits instead of failing on large candidate sets.
414
+ - The repository's own actionable health findings were resolved; remaining reviewed signals are recorded as explicit suppressions rather than silently ignored.
415
+
416
+ ## [0.15.0]
417
+
418
+ ### Breaking (behavior change for one command)
419
+
420
+ - **`suppress` writes one file per suppression instead of appending to `.codebaseiq.json`.** New suppressions land in `.codebaseiq/suppressions/<finding-id>.json` (check-level suppressions get a stable `CHECK-<hash>.json` name), stamped with `createdAt`. One-file-per-suppression makes concurrent branches merge without conflict and stops the config file from churning on every acceptance. Existing `suppressions[]` entries in `.codebaseiq.json` keep working (the gate reads both stores, identical matching semantics) — they are just no longer written. Commit the suppression files with your change.
421
+
422
+ ### Notable (new capabilities)
423
+
424
+ - **`setup` now completes automatic-indexing installation instead of only describing it.** A project with no prior watch decision gets `watch.enabled: true`; an existing explicit `false` remains an opt-out, and `setup --guided` presents enablement as a recommended consent choice. Setup starts or reuses the project service after reindexing, verifies its published clean-idle deadline, and reports Rust's final durable/worker transport, lifecycle state, and fallback after the health audit. The status read itself is passive; semantic health work may legitimately wake rust-analyzer. `init` now writes the same enabled demand-started default.
425
+ - **Committed outcome-event ledger.** Hook-mode `diff-gate` runs now mirror finding transitions (caught / resolved / suppressed / reopened) into `.codebaseiq/ledger/events.jsonl` — an append-only, one-event-per-line log stamped with the HEAD commit and, when known, the finding's SCIP symbol. A scoped `.gitattributes` (`merge=union`) is written alongside it, so concurrent appends from different branches merge without conflict; read-side dedupe by `(check, findingId, event, commit)` absorbs replays. Unlike the per-machine `evidence.db` ledger, this file is meant to be committed: outcome history survives re-clones and aggregates across every machine and agent working the repo. Ledger writes never block the hook — failures degrade to a stderr note.
426
+ - **New command: `effectiveness`.** Reads the committed event ledger and reports, per diff-gate check: findings caught, fixed by code changes (disappeared without a suppression), suppressed, still open, reopened, `moved` (rename noise — a resolved id whose symbol was re-caught under a new id at the same commit), precision (fixed ÷ concluded), and median days-to-fix. `--since 30d|12w|<ISO date>` windows by when the finding was caught, `--check <name>` filters, `--json` emits the standard envelope. This is the tool keeping score on itself: suppressions count against a detector's precision, fixes count for it.
427
+ - **Setup now reports and enforces ownership scopes.** Guided actions and setup results identify repository records to commit, checkout preferences to keep local, and user-environment changes. Project hooks always target `.codex/hooks.json` and `.claude/settings.local.json`, are excluded through `.git/info/exclude`, and refuse to alter an already tracked target. `--shared` remains accepted as a deprecated compatibility flag but no longer writes tracked Claude settings. Guided indexer consent now controls the installer, and the decorative parser-runtime question was removed.
428
+ - **Installed Stop hooks now update effectiveness history.** The normal `hook-stop` path shares the same caught/resolved/suppressed/reopened recorder as legacy `diff-gate --hook`, including clean runs that resolve earlier findings. Generated agent guidance requires committing suppression and outcome records while forbidding commits of checkout hook files; project uninstall names those shared records as intentionally preserved.
429
+
430
+ ### Breaking (behavior change for one config key)
431
+
432
+ - **A non-empty `indexer.typescript.projects` list is now authoritative.** When set, exactly the listed projects are indexed: automatic tsconfig discovery does not run and the repo root is no longer re-added alongside the list (even when the root tsconfig covers subdirectories). Files covered only by an excluded root tsconfig (e.g. shared ambient `.d.ts` files) drop out of the index — pick the list deliberately. An empty or absent list falls back to full discovery, unchanged. Previously the configured list was merged additively with discovery, which made it impossible to exclude a whole-repo root shard.
433
+
434
+ ### Notable (new capabilities)
435
+
436
+ - **Per-project TypeScript shard caching in workspace mode.** With `indexer.typescript.projectMode: "workspace"`, each tsconfig project shard now has its own fingerprint and cached SCIP artifact (`language-indexes/typescript-projects/`); a reindex after an edit reruns only the changed projects and their dependents instead of every shard. Dependency edges come from workspace `package.json` dependencies and tsconfig `paths`/`references` targets (resolved through `extends` chains); unparseable manifests fail toward depend-on-everything, so the cache can over-invalidate but never serve a stale shard. Every per-project reuse decision appears in `reindex --json` shard diagnostics with an explicit miss reason (`typescript:<project>` entries). Metadata stays v3-additive: older binaries ignore the new field, and older metadata simply classifies every project as a miss. Measured on a 2,438-file four-package monorepo: full rebuild 57s (single mode) → 27s; reindex after an edit in a leaf package 35s → 9.5s.
437
+
438
+ ## [0.11.0]
439
+
440
+ ### Breaking (one-way doors — read before upgrading)
441
+
442
+ - **`npm install` no longer installs anything beyond the package itself.** Postinstall used to symlink skills into your home directory and could shell out to `brew`/`go install` for missing toolchains. It now prints exactly one line — `codebaseiq installed -- run 'codebaseiq setup' in a repo to enable skills, hooks, and the index.` — and does nothing else. Run `codebaseiq setup` explicitly in a project to get skills, hooks, and a first index.
443
+ - **Project hooks are checkout-local.** `codebaseiq setup` (and `setup-hooks`) write Codex and Claude Code hooks to `.codex/hooks.json` and `.claude/settings.local.json`, exclude both through `.git/info/exclude`, and will not mutate a path Git already tracks. A teammate's agent tooling preferences therefore do not land in Git. The old `setup-hooks --shared` input is deprecated and now has the same local behavior. `setup-hooks --remove` writes an ignored decline tombstone so a later `setup` won't silently re-add hooks you removed; `--force` overrides it.
444
+ - **Suppression IDs use a new stable hash.** `.codebaseiq.json` suppression `id`s are now derived from `(check, symbol, file)` only, not the full match set, so an unrelated new similar function elsewhere no longer silently un-suppresses an accepted finding. Existing legacy-format IDs still match (dual-matching) — nothing in your config needs to change today — but `config-validate` now prints an info diagnostic naming the stable replacement for each legacy entry.
445
+ - **Windows no longer ships a vendored `scip.exe`.** The 39 MB vendored binary is gone. Windows installs now receive the binary through `codebaseiq-windows`, a universal (x64 + arm64) os-gated optional npm dependency fetched only on Windows; resolution order is PATH → `CODEBASEIQ_SCIP_BIN` env → sidecar package → printed instructions. Publishing the main package auto-builds and auto-publishes the sidecar (`prepublishOnly`). Set `CODEBASEIQ_SCIP_BIN` to a local `scip.exe` to override.
446
+ - **`convergence` is deprecated.** Use `similar <symbol1> <symbol2> --plan` instead. `convergence` still works (as a thin alias) but is not the documented path going forward.
447
+ - **`drift`'s pattern-deviation channel is now opt-in.** The "only sibling in this directory depends on X" noise channel used to run by default; it now requires `--patterns`. `drift` also gained `-n/--limit <n>` (default 50) — previously unbounded output could reach hundreds of KB on a large repo. Unused-import and layer-violation findings are unaffected and still run by default.
448
+ - **`doc-reference` findings are now split by citation granularity.** Only line-anchored citations (`file.ts:123`) or citations of a file that was deleted/renamed still block `diff-gate`. A bare file-mention citation (no line anchor) is now advisory: it prints and is suppressible but never fails the gate by itself.
449
+ - **`tla verify` groups findings by default.** Human-mode output now prints findings grouped by `(category, modelElement)` with a count and up to 3 exemplars per group, instead of every finding individually — one Vega-scale model previously produced 10,724 lines of output from a handful of root causes. Pass `--full` to get the old ungrouped behavior. `--json` is unaffected except for a new `findingGroups` summary alongside the still-complete `findings` array.
450
+
451
+ ### Notable (new capabilities)
452
+
453
+ - **New commands:** `duplicate-bodies` (finds byte-identical small callable bodies across files — the "same helper copy-pasted into seven files" shape `similar`'s shape-based scoring is too coarse to catch), `twin-drift` (finds same-name or near-name functions across files whose bodies have diverged — a signal one side got a fix the other never received), `uninstall` (reverses `install-skills`/`setup-hooks`, with `--dry-run`), and the `tla` model-checking family: `tla scaffold` (draft a TLA+ spec/config/mapping from indexed code), `tla instrument` (generate a trace recorder plus wiring sites), `tla trace-check` (prove a recorded execution is a legal model transition via the real TLC checker), and `tla fetch-tools` (download the sha256-pinned `tla2tools.jar`). This release also adds `tla verify`/`trace-check --timeout-ms` and `tla verify --full`.
454
+ - **`tla verify` actually verifies now.** Declared `reads` are checked against a static scan (not just parsed and ignored); variable/action referents that resolve to a type instead of a value produce a hard error; every waiver requires a reason and is counted in the output; the checker's config `INVARIANT`s are cross-checked against the mapping's declared invariants. A PASS with unwaived findings is no longer possible, and the proof summary is itemized (`writes: N verified, M waived`, etc.) instead of a single overclaiming sentence.
455
+ - **Two new `diff-gate` checks:** `twin-partner` (advisory — a changed symbol has a same-name twin elsewhere that this diff left untouched) and `coverage-contract` (a configured `.codebaseiq.json` `coverageContracts` entry drifted from its ground-truth source — enumeration rot).
456
+ - **Three new lens skills:** `scip-twin-drift`, `scip-claim-audit` (classify whether an "available"/"verified"/"safe"/"PASS" claim is derived from a real check or merely asserted), and `scip-probe-reachability` (prove whether a parser/AST branch is actually reachable by running the real parser on minimal inputs).
457
+ - **Skill set consolidated.** `scip-adoption`/`codebaseiq-setup` merged into `scip-setup`; the four-skill cleanup family collapsed into `scip-cleanup-audit` (report-only, three modes) and `scip-cleanup-improve` (autonomous fixing loop); every workflow now closes out through a single `scip-verify` skill instead of duplicated inline postchecks.
458
+ - **Skill set standardized on the `scip-` prefix.** `concrete-plan` → `scip-concrete-plan` and `tla-model-system` → `scip-tla-model-system`; `install-skills` prunes the old symlinked names automatically on the next run, no manual cleanup needed. `_shared` is the one intentional exception (reference infrastructure loaded by other skills, not user-invoked).
459
+ - **New skill: `scip-conductor`.** Bundles the previously user-global-only "conduct a multi-phase program" method (plan, delegate, verify handoffs, close, with pre-registered benchmarks) as a first-class installed skill, routed from the `codebaseiq` router with a tie-break against `scip-concrete-plan` (one change vs. a program of changes with delegation).
460
+ - **README documents every bundled skill.** A new "Bundled skills" table in README.md lists all 25 installed skills with a one-line essential-difference summary each, explicitly disambiguating the clusters that are easy to confuse (`scip-concrete-plan` vs `scip-conductor`, `scip-cleanup-audit` vs `scip-cleanup-improve`, `scip-verify` vs `scip-integrity-audit` vs `scip-maintainability` vs `scip-twin-drift`, `scip-directory-architecture` vs `scip-maintainability`).
461
+ - **`analysisBudget` JSON disclosure extended to every budgeted command.** Previously only `diff-gate --json` disclosed when a large-index scan cap engaged. Now `change-surface`, `incomplete-migration`, `dataflow`, `slice`, `plan-context`, `complexity`, `dead`, `extract-candidates`, `locality-candidates`, `cleanup-plan`, `recent-duplicates`, and every command built on the generic list/report/table command builders (`refs`, `imports`, `trace`, `similar`, `drift`, `isolated`, `unused-params`, and more) include an `analysisBudget` field in their JSON envelope whenever a cap engaged (omitted otherwise) — a reduced-coverage pass no longer presents as a full one to a JSON consumer.
462
+ - **Every command's evidence tier is now architectural, not per-command artisanal.** Human output prints a heuristic disclaimer and `--json` stamps an `evidence: "graph-fact" | "heuristic" | "mixed"` field for every command, driven by the descriptor registry rather than five different disconnected mechanisms. "Safe to delete" language is gone everywhere except compiler-verified (tier-4) output — cleanup findings now read "deletion candidates; confirm with cleanup-plan --verify."
463
+ - **`cleanup-plan --verify` reads the real checker exit status.** The banner is now `VERIFIED (<oracle>)` (naming `tsc`, `go build`, `ruff`, `python-compileall`, `clj-kondo`, or `cargo check`) instead of a blanket "COMPILER-VERIFIED", and it discloses when working-tree files outside the plan were dirty at verification time.
464
+ - **`finding-outcome ledger` and precision reporting.** `diff-gate` now tracks each check's resolution/suppression rate over time; low-precision checks surface a nudge in `--hook` mode, and `health --json` reports `detectorPrecision` per check.
465
+ - **Snapshot-doc policy.** `.codebaseiq.json`'s `docs.snapshotPaths` globs (or an inline `<!-- codebaseiq: snapshot -->` marker) exempt dated ledger/report docs from `doc-reference`/`doc-drift` findings, eliminating a recurring wall of false doc-drift positives on append-only docs.
466
+ - **Health dogfood: 97 → 100.** The layer policy gained `runtime → tla` (the CLI layer importing its own query module, the established pattern) and `src/core` is now a legal dependency for `source`, `semantic`, `runtime`, `tla`, and `language-parsers`. `escapeRegex` moved to a new zero-dependency `src/core/regex-utils.ts`, restoring the documented invariant that `src/semantic` never imports `src/source`. `binaryAvailable` moved to `src/core/command-availability.ts`; the shared download/checksum/cache primitive both `tla fetch-tools` and the Windows `scip.exe` fetcher needed now lives in `src/core/verified-binary-fetch.ts`, letting three prior "we'd extract this but `src/core` isn't reachable yet" suppressions be deleted outright. Four duplicate-body pairs were consolidated into shared helpers; three were left as documented intentional variation (React/Vue parity functions, echo/baseline remediation text) rather than force-merged.
467
+
468
+ ### Fixes (accuracy / false-positive)
469
+
470
+ - **Three false-dead archetypes fixed.** Symbols consumed only via `import type` across a `tsconfig` path alias are no longer reported dead. pnpm-workspace cross-package consumers are now resolved via a new workspace-package resolver (this also fixed a real bug — `fanInBySymbolId.get(id) === 0` treated an _absent_ symbol the same as a zero-reference one, suppressing semantic enrichment broadly, not just for the workspace case). Vue `<script setup>` composable consumers were verified already correct and gained a regression fixture. Where the remaining gap couldn't be closed this release (an ambiguous leaf name across an unresolved barrel re-export hop), the finding is now labeled `unconfirmed` instead of asserted `dead`.
471
+ - **`diff-gate` fails closed.** A git-diff-unavailable condition (diff too large for the exec buffer, a bad `--base`, or a git error) now exits nonzero having run zero checks, instead of silently passing.
472
+ - **`doc-drift` epoch-0 timestamp bug fixed.** A doc whose only commit touched it as part of a >50-file bulk sweep now falls back to file mtime instead of being reported as "last changed at the Unix epoch."
473
+ - **SANY XML export was silently dead code.** `-o <path>` on the SANY invocation meant "offline mode," not "output path" — the real-parser XML export path never actually ran. Fixed the invocation and rewrote the XML grammar parser against real `tla2tools` v1.8.0 output.
474
+ - **`tla verify`/`trace-check` timeout misclassification fixed.** `spawnSync`'s own timeout kill has no `ETIMEDOUT` error shape — only `signal: 'SIGTERM'` — so a genuine timeout was previously reported as an ordinary `failed` run. A SIGTERM landing at or after the requested `timeoutMs` boundary is now classified `timed-out`.
475
+ - **Calibration retunes from external repo validation:** `duplicate-bodies`' default `--min-loc` raised from 1 to 3 (kills 1-line forwarding-stub noise); `twin-drift` excludes synthetic constructor-style leaves and test-only groups; `co-change` exempts locale/i18n sibling resource files from hidden-coupling findings; `stale-abstractions`/`wrapper-candidates` gained an explicit false-positive-rate caveat and were demoted from the default `cleanup-audit` sweep to an opt-in deep-dive.
476
+ - Assorted smaller fixes: parameterized SQL in a scope filter (injection-shaped hygiene, no known exploit), fan-in/hotspot queries no longer counting a symbol's own defining file as a consumer, AST-based cyclomatic-complexity counting, nested `.gitignore` support, and Vue single-file-component script extraction unified across the codebase.
477
+
478
+ [0.17.2]: https://github.com/PlunderStruck/codebaseiq/releases/tag/v0.17.2
479
+ [0.17.1]: https://github.com/PlunderStruck/codebaseiq/releases/tag/v0.17.1
480
+ [0.17.0]: https://github.com/PlunderStruck/codebaseiq/releases/tag/v0.17.0
481
+ [0.11.0]: https://github.com/PlunderStruck/codebaseiq/releases/tag/v0.11.0