sigmap 5.3.0 → 5.4.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,17 @@ Format: [Semantic Versioning](https://semver.org/)
10
10
 
11
11
  ---
12
12
 
13
+ ## [5.4.0] — 2026-04-17
14
+
15
+ ### Added
16
+
17
+ - **Neovim plugin (`sigmap.nvim`)** — first-class Neovim integration in `neovim-plugin/`. Provides `:SigMap [args]` (async regen), `:SigMapQuery <text>` (TF-IDF retrieval in a floating window), `auto_run = true` (`BufWritePost` autocmd for source files), `require('sigmap').statusline()` for lualine/statusline widgets, and `:checkhealth sigmap` (validates Node 18+, binary presence, context file freshness).
18
+ - **Binary auto-detection** — plugin resolves the sigmap binary automatically: global `sigmap` → `npx sigmap` → local `gen-context.js` fallback; no manual config needed for most setups.
19
+ - **`release-neovim.yml` workflow** — tag `neovim-v*` to validate Lua files, run the full integration suite across Node 18/20/22, package the plugin as a `.tar.gz`, and create a GitHub Release.
20
+ - **CI now runs integration tests** — `ci.yml` runs both `node test/run.js` and `node test/integration/all.js` on every push and pull request.
21
+
22
+ ---
23
+
13
24
  ## [5.3.0] — 2026-04-17
14
25
 
15
26
  ### Added
package/README.md CHANGED
@@ -25,7 +25,7 @@ npx sigmap # 10 seconds. zero config. your AI never reads the wrong file again
25
25
  - Fewer retries (1.69 vs 2.84 prompts per task)
26
26
  - Far smaller context (~2K–4K tokens instead of ~80K)
27
27
 
28
- > Latest: **v5.3.0** — Learning engine + workflow-first release. Use `ask`, `validate`, `judge`, `learn`, `weights`, `compare`, and `share` on top of the core signature pipeline.
28
+ > Latest: **v5.4.0** — Neovim plugin (`sigmap.nvim`). `:SigMap`, `:SigMapQuery`, auto-run on save, statusline widget, and `:checkhealth sigmap` for the #1 most-admired editor.
29
29
 
30
30
  **What is new in v5.2**
31
31
  - `sigmap ask` creates task-focused context in one step
@@ -99,6 +99,7 @@ Measured on 90 coding tasks across 18 real public repos. Full methodology and ra
99
99
  | [Standalone binaries](docs/readmes/binaries.md) | macOS, Linux, Windows — no Node required |
100
100
  | [VS Code extension](#-vs-code-extension) | Status bar, stale alerts, commands |
101
101
  | [JetBrains plugin](#-jetbrains-plugin) | IntelliJ IDEA, WebStorm, PyCharm support |
102
+ | [Neovim plugin](#-neovim-plugin) | `:SigMap`, `:SigMapQuery`, statusline, health check |
102
103
  | [Languages supported](#-languages-supported) | 29 languages |
103
104
  | [Context strategies](#-context-strategies) | full / per-module / hot-cold |
104
105
  | [MCP server](#-mcp-server) | 8 on-demand tools |
@@ -518,6 +519,35 @@ Compatible with **IntelliJ IDEA 2024.1+** (Community & Ultimate), **WebStorm**,
518
519
 
519
520
  ---
520
521
 
522
+ ## 🖥️ Neovim plugin
523
+
524
+ The official SigMap Neovim plugin (`sigmap.nvim`) brings first-class integration to the #1 most-admired editor (Stack Overflow 2025, 83% admiration rate). Power users who live in the terminal get context regeneration, ranked retrieval, and health checks without leaving Neovim.
525
+
526
+ | Feature | Detail |
527
+ |---|---|
528
+ | **`:SigMap [args]`** | Regenerate your AI context file asynchronously |
529
+ | **`:SigMapQuery <text>`** | TF-IDF ranked retrieval — results appear in a centered floating window |
530
+ | **Auto-run on save** | `auto_run = true` triggers regen on `BufWritePost` for `.js/ts/py/go/rs/java/rb/lua` |
531
+ | **Statusline widget** | `require('sigmap').statusline()` returns `sm:✓` (fresh) or `sm:⚠ Nh` (stale) |
532
+ | **`:checkhealth sigmap`** | Validates Node 18+, binary presence, and context file freshness |
533
+ | **Binary auto-detection** | Finds `sigmap` → `npx sigmap` → local `gen-context.js` automatically |
534
+
535
+ **Install (lazy.nvim):**
536
+ ```lua
537
+ { 'manojmallick/sigmap',
538
+ config = function()
539
+ require('sigmap').setup({
540
+ auto_run = true, -- regenerate on save
541
+ float_query = true, -- show query results in a floating window
542
+ })
543
+ end,
544
+ }
545
+ ```
546
+
547
+ **Source:** [`neovim-plugin/`](neovim-plugin/) | **Docs:** [`neovim-plugin/README.md`](neovim-plugin/README.md)
548
+
549
+ ---
550
+
521
551
  ## 🌐 Languages supported
522
552
 
523
553
  > 29 languages and formats. All implemented with zero external dependencies — pure regex + Node built-ins.
@@ -811,7 +841,7 @@ Every run now prints a coverage line alongside token reduction:
811
841
 
812
842
  ```
813
843
  ───────────────────────────────────────────
814
- SigMap v5.3.0
844
+ SigMap v5.4.0
815
845
  Files scanned : 76
816
846
  Symbols found : 332
817
847
  Token reduction: 94% (65,227 → 4,103)
@@ -830,7 +860,7 @@ sigmap --report
830
860
 
831
861
  ```
832
862
  [sigmap] report:
833
- version : 5.3.0
863
+ version : 5.4.0
834
864
  files processed : 76
835
865
  reduction : 93.7%
836
866
  coverage : A (97%) — 76 of 78 source files included
@@ -874,7 +904,7 @@ sigmap --health --json
874
904
  Every output file now carries a metadata line so you can inspect freshness at a glance:
875
905
 
876
906
  ```
877
- <!-- sigmap: version=5.3.0 confidence=HIGH coverage=97% dropped=2 commit=8540612 -->
907
+ <!-- sigmap: version=5.4.0 confidence=HIGH coverage=97% dropped=2 commit=8540612 -->
878
908
  ```
879
909
 
880
910
  ### Diff risk score
@@ -1009,6 +1039,11 @@ sigmap/
1009
1039
  │ ├── package.json ← manifest — commands, settings, activation
1010
1040
  │ └── src/extension.js ← status bar, stale notification, commands
1011
1041
 
1042
+ ├── neovim-plugin/ ← Neovim plugin — sigmap.nvim (v5.4)
1043
+ │ ├── lua/sigmap/init.lua ← M.setup(), M.run(), M.query(), M.statusline()
1044
+ │ ├── lua/sigmap/health.lua ← :checkhealth sigmap
1045
+ │ └── plugin/sigmap.lua ← :SigMap and :SigMapQuery user commands
1046
+
1012
1047
  ├── test/
1013
1048
  │ ├── fixtures/ ← one source file per language
1014
1049
  │ ├── expected/ ← expected extractor output
package/gen-context.js CHANGED
@@ -4853,7 +4853,7 @@ __factories["./src/mcp/server"] = function(module, exports) {
4853
4853
 
4854
4854
  const SERVER_INFO = {
4855
4855
  name: 'sigmap',
4856
- version: '5.3.0',
4856
+ version: '5.4.0',
4857
4857
  description: 'SigMap MCP server — code signatures on demand',
4858
4858
  };
4859
4859
 
@@ -6571,7 +6571,7 @@ const path = require('path');
6571
6571
  const os = require('os');
6572
6572
  const { execSync } = require('child_process');
6573
6573
 
6574
- const VERSION = '5.3.0';
6574
+ const VERSION = '5.4.0';
6575
6575
  const MARKER = '\n\n## Auto-generated signatures\n<!-- Updated by gen-context.js -->\n';
6576
6576
 
6577
6577
  function requireSourceOrBundled(key) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigmap",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "Zero-dependency AI context engine — 97% token reduction. No npm install. Runs on Node 18+.",
5
5
  "main": "gen-context.js",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigmap-cli",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "SigMap CLI wrapper — thin adapter for programmatic CLI invocation",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigmap-core",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "SigMap core library — zero-dependency code signature extraction, retrieval, and security scanning",
5
5
  "main": "index.js",
6
6
  "keywords": [
package/src/mcp/server.js CHANGED
@@ -18,7 +18,7 @@ const { readContext, searchSignatures, getMap, createCheckpoint, getRouting, exp
18
18
 
19
19
  const SERVER_INFO = {
20
20
  name: 'sigmap',
21
- version: '5.3.0',
21
+ version: '5.4.0',
22
22
  description: 'SigMap MCP server — code signatures on demand',
23
23
  };
24
24