sigmap 8.32.1 → 8.34.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.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,31 @@ Format: [Semantic Versioning](https://semver.org/)
10
10
 
11
11
  ---
12
12
 
13
+ ## [8.34.0] — 2026-09-13
14
+
15
+ ### Added
16
+ - **Lua extractor** (Tier 3) — global and local functions, module-table functions (`function M.name`, `function M:name`), assigned functions, `require` module hints, and LDoc `---` doc comments as first-sentence hints (#540, PR #550) — thanks **@zerone0x**. The contribution shipped its own fixture and expected output, which is exactly what the #588 fixture guard now requires, contributed before that guard existed. Brought up to the disclosure convention it predates: its caps now report the true overflow rather than truncating silently, with the ceiling unchanged
17
+ - Call-graph definitions for **Kotlin and Scala** (#586, PR #602). `extractDefs` returned null for `.kt`/`.scala` and the walk did not collect them, so the graph was empty for both — and an empty graph returns no error, so `--impact` and blast radius silently read zero. That is the failure mode that cost a release in #561, and akka (Scala) sits in the gated JVM corpus, so CI exercised Scala in a way that could never detect it. Adds `jvmBodyRange` for expression bodies (`fun f() = expr`), which Java does not have. On a small Kotlin+Scala tree: 0 symbols / 0 edges → 8 / 2. Scope is pinned by test — same-file calls resolve, cross-file *receiver* calls do not yet, because receiver typing is Java-shaped
18
+
19
+ ### Fixed
20
+ - Generated `context-*.md` splits from a previous `strategy` no longer pollute retrieval (#555, PR #601). Splits are discovered by filename pattern at read time, not by consulting the config, so a file left by an earlier strategy — or by a module since dropped from `srcDirs` — kept being merged into the index and steering every query. On a 524-file Java repo a stale 376 KB split held ranks 1, 3 and 4 with generated entities, one unrelated to the query, while both files implementing the feature fell outside the top 6 — with `sig-index.json` correctly holding zero entries for it. Each strategy now declares what it wrote and the rest is pruned, and the prune is reported rather than silent
21
+
22
+ ---
23
+
24
+ ## [8.33.0] — 2026-09-13
25
+
26
+ ### Added
27
+ - The generated artifact now **says when the token budget left files out**. The `[sigmap] budget: dropped N file(s)` warning only ever went to stderr, which an agent reading the file never sees — on flask that meant 25 of 51 files present with no indication the other 26 existed, indistinguishable from a 25-file repo. `applyTokenBudget` attaches a non-enumerable summary to the array it returns, so all four call sites (full, per-module, hot-cold) gain the footer without a signature change. The wording states that the omitted files are still in the retrieval index and reachable via `sigmap ask`, and a test asserts it does not overstate the loss — replacing a misleading silence with a misleading warning would be no improvement (#587, PR #599)
28
+ - A test fixture for **every** language extractor, plus a guard that fails when one is missing (#588, PR #595). The 8 languages named in the issue were only part of it: the guard immediately found a ninth, `typescript_react` — `.tsx`, every React component, and the extractor that shipped a silent truncation cap in v8.32.0. It also caught a stale `test/expected/vue.txt` that outlived the `vue.js` deleted in v8.32.1, which had been making `--diagnose-extractors` print a silent `SKIP`. That diagnostic went from 21 passing with an unnoticed SKIP to 32 passing with none
29
+
30
+ ### Fixed
31
+ - NestJS route paths now compose the `@Controller` prefix. `@Controller('cats')` + `@Get(':id')` emitted `:id` rather than `/cats/:id`, so the route pseudo-signature matched nothing a user would ask about — defeating the purpose of the feature, which exists so a route-worded query can reach a controller whose signatures never mention the path. The prefix is attributed per controller rather than per file, since a file may declare several. The other six claimed frameworks were verified unchanged (#585, PR #598)
32
+
33
+ ### Changed
34
+ - Extractor resolution has **one source of truth**. Three places decided which extractor module to load and two had drifted: `src/eval/analyzer.js` carried a dead duplicate `.vue` key, and the `--diagnose-extractors` map still pointed at `vue.js` after that module was deleted — which is how an unreachable extractor survived unnoticed in the first place. The hand-maintained copy was also incomplete, with no `.gd` entry, so gdscript was never actually diagnosed despite having both a fixture and recorded expected output. `language-detector.js` and `dashboard.js` are deliberately **not** merged in: they map `.tsx` for language *statistics* and display *labels*, not resolution, and a test pins that distinction so a future dedup cannot quietly break language counts (#591, PR #597)
35
+
36
+ ---
37
+
13
38
  ## [8.32.1] — 2026-09-13
14
39
 
15
40
 
package/README.md CHANGED
@@ -64,7 +64,7 @@ That map is exactly what agentic grep is worst at: reproducible, auditable conte
64
64
  - **62.9% task-success proxy** — modeled from retrieval tiers, not measured LLM sessions
65
65
  - **1.58 prompts per task** — down from 2.84 (44.4% fewer retries, modeled)
66
66
  <!--/SM:whyMetrics-->
67
- - **<!--SM:languages-->32<!--/SM:languages--> languages supported** — TypeScript, Python, Go, Rust, Java, R, and more
67
+ - **<!--SM:languages-->33<!--/SM:languages--> languages supported** — TypeScript, Python, Go, Rust, Java, R, and more
68
68
  - **No vendor lock-in** — works with any AI assistant or local LLM
69
69
  - **No API costs** — use local models (Ollama, llama.cpp, vLLM) with zero token fees
70
70
  - **Full privacy** — keep your code and context on your machine
@@ -122,8 +122,8 @@ Ask → Rank → Context → Validate → Judge → Learn
122
122
 
123
123
  <!--SM:benchmarkBlock-->
124
124
  ```
125
- Benchmark : sigmap-v8.32-main (21 repositories, including R language)
126
- Date : 2026-09-12
125
+ Benchmark : sigmap-v8.34-main (21 repositories, including R language)
126
+ Date : 2026-09-13
127
127
 
128
128
  Hit@5 : 78.9% (grep-agent baseline 44.0% — 1.73× lift)
129
129
  Token reduction: 96.8% (across 21 repos)
@@ -332,7 +332,7 @@ sigmap --health
332
332
  | Benchmark methodology | [benchmark.html](https://sigmap.io/guide/benchmark.html) |
333
333
  | Config reference | [config.html](https://sigmap.io/guide/config.html) |
334
334
  | Roadmap | [roadmap.html](https://sigmap.io/guide/roadmap.html) |
335
- | <!--SM:languages-->32<!--/SM:languages--> languages | [generalization.html](https://sigmap.io/guide/generalization.html) |
335
+ | <!--SM:languages-->33<!--/SM:languages--> languages | [generalization.html](https://sigmap.io/guide/generalization.html) |
336
336
 
337
337
  ---
338
338
 
@@ -389,7 +389,7 @@ See [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) for the
389
389
 
390
390
  ---
391
391
 
392
- ## <!--SM:languages-->32<!--/SM:languages--> languages
392
+ ## <!--SM:languages-->33<!--/SM:languages--> languages
393
393
 
394
394
  TypeScript · JavaScript · Python · Java · Kotlin · Go · Rust · C# · C/C++ · Ruby · PHP · Swift · Dart · Scala · Vue · Svelte · HTML · CSS/SCSS · YAML · Shell · SQL · GraphQL · Terraform · Protobuf · Dockerfile · TOML · XML · Properties · Markdown · R · GDScript
395
395