scip-query 0.19.1 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +17 -1
  3. package/dist/{chunk-ESNRT7QN.js → chunk-26JI77AY.js} +108 -108
  4. package/dist/{chunk-XZXUMGAA.js → chunk-2E7QY4B5.js} +2 -2
  5. package/dist/{chunk-JBZXJXIS.js → chunk-2ROSOG2I.js} +2 -2
  6. package/dist/{chunk-NTOBQK5H.js → chunk-33RLKB6L.js} +2 -2
  7. package/dist/{chunk-XCPE3G75.js → chunk-4BUMNEYQ.js} +2 -2
  8. package/dist/{chunk-HCS5LB6U.js → chunk-5FUAFNMP.js} +2 -2
  9. package/dist/chunk-5GCAM4JE.js +122 -0
  10. package/dist/{chunk-SSXEYWN3.js → chunk-5OR4QRPR.js} +2 -2
  11. package/dist/{chunk-CKFMZE77.js → chunk-5TZ2MQBG.js} +2 -2
  12. package/dist/{chunk-Q2WEWIKX.js → chunk-6EWBPAA3.js} +2 -2
  13. package/dist/{chunk-4BU54UJG.js → chunk-6FIA5BEB.js} +2 -2
  14. package/dist/{chunk-DFQNE73Y.js → chunk-77IOFJVY.js} +2 -2
  15. package/dist/{chunk-WCZAABYF.js → chunk-AD7WUFFT.js} +2 -2
  16. package/dist/{chunk-V7J4A3AH.js → chunk-AFVU2GB2.js} +2 -2
  17. package/dist/{chunk-ZNK6K3LB.js → chunk-B26UX7ZD.js} +2 -2
  18. package/dist/{chunk-SYGAA54M.js → chunk-C3VQZFP2.js} +2 -2
  19. package/dist/{chunk-B2WQKQKP.js → chunk-EGKWRX5I.js} +2 -2
  20. package/dist/{chunk-3WLRW5TC.js → chunk-EHU4TZJJ.js} +2 -2
  21. package/dist/{chunk-KMUFGAIK.js → chunk-EII5ZHL2.js} +2 -2
  22. package/dist/{chunk-BBBKPOIT.js → chunk-EYF5HOUZ.js} +2 -2
  23. package/dist/{chunk-PYMZU5EG.js → chunk-FYE4PWWP.js} +2 -2
  24. package/dist/{chunk-V5WBVF6K.js → chunk-HAC5EI2T.js} +2 -2
  25. package/dist/{chunk-5W2VAEVR.js → chunk-HCSTQGQE.js} +2 -2
  26. package/dist/{chunk-JJZRS2OP.js → chunk-HHOJH3RJ.js} +2 -2
  27. package/dist/{chunk-6PKO2TNZ.js → chunk-HNTLCR4F.js} +2 -2
  28. package/dist/{chunk-BMTBVMA3.js → chunk-IICQP2DY.js} +2 -2
  29. package/dist/{chunk-OOUJBAKJ.js → chunk-IXAALOUP.js} +2 -2
  30. package/dist/{chunk-LF5CIKWZ.js → chunk-JFO2UVQP.js} +2 -2
  31. package/dist/{chunk-5TEUKVSM.js → chunk-JRCJEHRG.js} +2 -2
  32. package/dist/{chunk-FHLYJVXF.js → chunk-LSJDKJIB.js} +2 -2
  33. package/dist/{chunk-RPEA7P5Z.js → chunk-MRYPDVOS.js} +2 -2
  34. package/dist/{chunk-E3KWOHH7.js → chunk-NLNZK7RL.js} +5 -5
  35. package/dist/{chunk-7TJJY2C3.js → chunk-OAM22BCR.js} +2 -2
  36. package/dist/{chunk-LQUDSHLB.js → chunk-PCIFZHWS.js} +2 -2
  37. package/dist/{chunk-WFRET75Z.js → chunk-PJENL245.js} +2 -2
  38. package/dist/{chunk-EMIIOOTM.js → chunk-PLDIXTKR.js} +2 -2
  39. package/dist/{chunk-YCSTKIYU.js → chunk-PTYQQHZM.js} +2 -2
  40. package/dist/{chunk-BCMOTIB6.js → chunk-QKW7ISEW.js} +2 -2
  41. package/dist/{chunk-63P42UR6.js → chunk-QNO3QIMN.js} +2 -2
  42. package/dist/{chunk-6O5JOS7T.js → chunk-SOS256TP.js} +2 -2
  43. package/dist/{chunk-QHKXGMOI.js → chunk-TDUU63FC.js} +2 -2
  44. package/dist/chunk-TOIS2VAI.js +4 -0
  45. package/dist/chunk-V27BEQJN.js +7 -0
  46. package/dist/{chunk-KC2IFAAU.js → chunk-WFWQWQK6.js} +2 -2
  47. package/dist/{chunk-US44MEVU.js → chunk-XAMVIPE2.js} +2 -2
  48. package/dist/{chunk-DCDOGW32.js → chunk-XWE7PZQH.js} +2 -2
  49. package/dist/{chunk-GIHVWNKQ.js → chunk-XWJ3JYRG.js} +2 -2
  50. package/dist/{chunk-AGTATREV.js → chunk-XYNWAZ6J.js} +2 -2
  51. package/dist/{chunk-DZXFZAZO.js → chunk-YGBHQOB2.js} +2 -2
  52. package/dist/{chunk-7SGOWD2Y.js → chunk-Z7M7X3ZG.js} +2 -2
  53. package/dist/cli.js +1 -1
  54. package/dist/{command-descriptors-3EJHQLQZ.js → command-descriptors-QJEYYND2.js} +168 -166
  55. package/dist/direct-navigation-TT23TDBS.js +3 -0
  56. package/dist/index.js +1 -1
  57. package/dist/queries/affected.js +1 -1
  58. package/dist/queries/bottlenecks.js +1 -1
  59. package/dist/queries/call-graph.js +1 -1
  60. package/dist/queries/change-surface.js +1 -1
  61. package/dist/queries/cleanup-plan.js +1 -1
  62. package/dist/queries/complexity-hotspots.js +1 -1
  63. package/dist/queries/complexity.js +1 -1
  64. package/dist/queries/convergence.js +1 -1
  65. package/dist/queries/dataflow.js +1 -1
  66. package/dist/queries/dead.js +1 -1
  67. package/dist/queries/decorative-checkers.js +1 -1
  68. package/dist/queries/diff-gate.js +1 -1
  69. package/dist/queries/diff-impact.js +1 -1
  70. package/dist/queries/drift.js +1 -1
  71. package/dist/queries/extract-candidates.js +1 -1
  72. package/dist/queries/health.js +1 -1
  73. package/dist/queries/hotspots.js +1 -1
  74. package/dist/queries/imports.js +1 -1
  75. package/dist/queries/incomplete-migration.js +1 -1
  76. package/dist/queries/index.js +1 -1
  77. package/dist/queries/isolated.js +1 -1
  78. package/dist/queries/locality-candidates.js +1 -1
  79. package/dist/queries/members.js +1 -1
  80. package/dist/queries/methods.js +1 -1
  81. package/dist/queries/not-implemented.js +1 -1
  82. package/dist/queries/passthrough-candidates.js +1 -1
  83. package/dist/queries/plan-context.js +1 -1
  84. package/dist/queries/recent-duplicates.js +1 -1
  85. package/dist/queries/redundant-reexports.js +1 -1
  86. package/dist/queries/refs.js +1 -1
  87. package/dist/queries/self-audit.js +1 -1
  88. package/dist/queries/similar-signatures.js +1 -1
  89. package/dist/queries/similar.js +1 -1
  90. package/dist/queries/slice.js +1 -1
  91. package/dist/queries/stale-abstractions.js +1 -1
  92. package/dist/queries/surface.js +1 -1
  93. package/dist/queries/trace.js +1 -1
  94. package/dist/queries/twin-ab.js +1 -1
  95. package/dist/queries/unused-imports.js +1 -1
  96. package/dist/queries/unused-params.js +1 -1
  97. package/dist/queries/wrapper-candidates.js +1 -1
  98. package/dist/reindex-worker.js +24 -24
  99. package/dist/reindex.js +38 -38
  100. package/dist/runtime.d.ts +6 -1
  101. package/dist/runtime.js +2 -2
  102. package/dist/watch-server.js +5 -5
  103. package/package.json +1 -1
  104. package/dist/chunk-2NA6TYP4.js +0 -120
  105. package/dist/chunk-DRH3AD7W.js +0 -4
  106. package/dist/chunk-IOOCKVUA.js +0 -6
  107. package/dist/direct-navigation-C2A44KFT.js +0 -3
package/CHANGELOG.md CHANGED
@@ -4,6 +4,31 @@ All notable changes to `scip-query` are documented here. This file starts at 0.1
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.19.3]
8
+
9
+ ### Performance and operations
10
+
11
+ - Watchers now suppress a queued cooldown reindex when the completed index's
12
+ fingerprint proves the queued file events are already represented. Stale or
13
+ unavailable freshness still preserves the follow-up refresh.
14
+ - A bounded two-segment activity ledger powers rolling 24-hour watch status
15
+ counts for rebuilt, reused, failed, and suppressed refreshes plus estimated
16
+ logical artifact bytes. The estimate is explicitly not physical SSD writes.
17
+ - Source watching retries with 500 ms polling only when the host refuses an
18
+ event-backed subscription with `EMFILE`, preserving refresh correctness
19
+ without adding polling I/O to the normal path.
20
+
21
+ ## [0.19.2]
22
+
23
+ ### Fixes
24
+
25
+ - Watch-service reuse no longer reports a startup warning when a sandboxed
26
+ client cannot update the optional activity timestamp in the user cache.
27
+ - Reindexing now removes abandoned staging workspaces under the exclusive
28
+ reindex lock. Affected-set history stores compact calibration summaries and
29
+ rotates at 8 MiB with one previous segment instead of appending unbounded
30
+ full records; the complete latest status record is unchanged.
31
+
7
32
  ## [0.19.0]
8
33
 
9
34
  ### Architecture coherence
package/README.md CHANGED
@@ -461,7 +461,13 @@ child writes only to that worktree's writable `index.scip` and `index.db`. A
461
461
  cross-platform source watcher maintains the directory subscriptions needed to
462
462
  detect ordinary unstaged edits even when Node does not provide recursive
463
463
  filesystem events, while separate Git polling detects commit and staging-state
464
- changes. A
464
+ changes. File events that arrive during a reindex still mark the watcher dirty,
465
+ but the queued rerun is suppressed when the completed index's source
466
+ fingerprint proves those events are already represented; a stale or unreadable
467
+ fingerprint always preserves the rerun. If the host refuses an event-backed
468
+ subscription because its open-file allowance is exhausted, that project
469
+ retries with 500 ms file polling; ordinary event-backed watchers do not pay
470
+ that polling cost. A
465
471
  shared generation is only a warm starting snapshot; it never implies a shared
466
472
  watcher or shared later writes. A daemon that exits after its configured idle
467
473
  timeout starts warm again when that worktree is next used.
@@ -495,6 +501,11 @@ and any conservative fallback reason. `scip-query status` shows a compact
495
501
  summary and telemetry path; `status --json` exposes the structured
496
502
  `affectedSetShadow` object. Shadow results are observational in this phase and
497
503
  never decide which indexer runs or which generation publishes.
504
+ Historical shadow rows are compact calibration summaries. They rotate at
505
+ 8 MiB and retain one previous segment, bounding history near 16 MiB per
506
+ project; the complete latest record remains available for status diagnostics.
507
+ After acquiring a project's exclusive reindex lock, each reindex also removes
508
+ staging directories abandoned by interrupted earlier reindexes.
498
509
 
499
510
  TypeScript monorepos can opt into project sharding with `indexer.typescript.projectMode: "workspace"`. In that mode, `scip-query` discovers repo-local TypeScript project roots, runs one `scip-typescript` process per project with bounded concurrency, merges the shard protobufs, and still publishes one TypeScript language index. Set `indexer.typescript.projects` to an explicit list of project directories or tsconfig paths when automatic discovery is too broad. When `projects` is set to a non-empty list, it is authoritative: only the listed projects are indexed, automatic discovery does not run, and the repo root is not re-added alongside them (even if the root tsconfig covers subdirectories) — files that are only covered by an excluded root tsconfig (e.g. shared ambient `.d.ts` files) drop out of the index, so pick the list deliberately. An empty or absent `projects` falls back to full discovery, unchanged. Workspace mode also caches each project shard: reindexing after an edit reruns only the changed projects and their dependents (workspace `package.json` dependencies and tsconfig `paths`/`references` targets count as dependencies), serves untouched projects from `language-indexes/typescript-projects/`, and reports every reuse decision in `reindex --json` shard diagnostics. Set `indexerConcurrency` when a repo needs a persistent worker cap; CLI `--indexer-concurrency` and `SCIP_QUERY_INDEXER_CONCURRENCY` still override ad hoc runs.
500
511
  Use `indexer.typescript.pnpmWorkspaces` only with the default single-project mode; workspace mode passes explicit projects instead.
@@ -567,6 +578,11 @@ the first command that needs ts-morph semantics. Separate CLI processes reuse
567
578
  that session through a repository-local atomic mailbox; source-only index
568
579
  generations refresh the existing Projects, while configuration or uncertain
569
580
  changes replace them. `watch --status` reports Project/session/request counts.
581
+ It also reports a rolling 24-hour reindex activity summary: rebuilt, reused,
582
+ failed, and freshness-proven suppressed refreshes plus estimated logical output
583
+ bytes. The estimate counts scip-query artifacts emitted by rebuilt refreshes;
584
+ it is not a measurement of physical SSD writes. The underlying
585
+ `reindex-activity.jsonl` history uses two bounded 1 MiB segments.
570
586
  If the service is stopped, incompatible, busy beyond its bound, or returns an
571
587
  invalid response, the command falls back to the existing in-process ts-morph
572
588
  provider.