v0.2.0 — 10 languages, working rules, usage log, smarter dead code
✨ Highlights
10 more languages
Beyond JavaScript/TypeScript, Sens now indexes Python, Go, Rust, Java, C#, C, C++, PHP, Ruby and Kotlin via tree-sitter. A mixed repo (e.g. a TS frontend + a Python or Go backend) is indexed as a single project. Adding a language is now a small self-contained parser under src/indexer/languages/.
Working rules the model follows
The MCP server now hands the model a concrete set of coding rules — reuse what exists instead of duplicating, leave no orphan code, keep it minimal but maintainable — each tied to the Sens tool that lets it verify the rule. They load automatically over MCP; you can also print them with sens rules or inject them with the /sens rules prompt.
Know it's actually being used
Every MCP tool call is now recorded to .sens/usage.jsonl. Run sens usage to see exactly which tools the model called, when, and with what arguments — proof, not faith.
Smarter dead_code
dead_code no longer flags code that is used but was invisible to static analysis:
- dynamic
import("./x") export * from "./y"barrels and named re-exports- names referenced via string / reflective access (
obj["name"], registries) - the same, for quoted names in the tree-sitter languages
📦 Install
npx sens-mcp@0.2.0 mcp # run the MCP server
# or add to .mcp.json: { "command": "npx", "args": ["-y", "sens-mcp", "mcp"] }⚠️ Notes
- Swift is intentionally not included: its tree-sitter grammar crashes Node's WASM teardown. Every other listed language is fully supported.
- The on-disk index schema was bumped — caches rebuild automatically on first run after upgrading.
Full changelog: 0.1.0...v0.2.0