Releases: Codeturion/codesurface
Releases · Codeturion/codesurface
v0.7.0 — Line numbers for targeted reads
What's New
Line numbers on every record
All API records now include line_start and line_end (1-indexed). Multi-line declarations span the full signature. This lets AI agents do targeted reads instead of reading full files:
File: Converter.java:504-506 → Read("Converter.java", offset=504, limit=10)
File: album.controller.ts:46 → Read("album.controller.ts", offset=46, limit=15)
Multi-line support across all parsers
- C#:
_collect_paramsreturns(str, end_line)for constructors and methods - Go: captures
end_ifrom_collect_signature()for methods, functions, and interface methods - Java: constructors, methods, and interface methods use
end_ifrom_collect_signature() - Python: multi-line typed class fields track
skip_lines - TypeScript: accessors and interface methods capture
end_ifrom_collect_signature()
Updated CLAUDE.md snippet
- Concise 13-line snippet with targeted read examples
- Explicitly instructs subagents to use codesurface tools first
Edge case fix
_collect_paramsnow tracksendon every loop iteration, so if the 50-line lookahead exhausts without finding),line_endstill reflects the last consumed line
Validated on
- Flask (872 records), Gin (574), Immich (7,957), Guava (8,377) — 25,591 total, 0 mismatches
v0.6.0
What's New
Auto-reindex on query miss
When a query (search, get_signature, get_class) returns no results and the index may be stale, the server automatically runs an incremental reindex and retries. Uses a _index_fresh flag to skip redundant file walks on consecutive misses.
- Zero overhead on hits (0.09ms)
- Zero overhead on repeated misses (already fresh)
- Reindex cost only on first miss after a hit (~1-14ms depending on project size)
Stronger agent instructions
- Server
instructionsfield now explicitly tells agents to use codesurface tools BEFORE Grep/Glob/Read - Updated CLAUDE.md snippet with table + rules pattern for better subagent compliance
Other
_index_incrementalreturns(str, bool)tuple for structured change detection- Fixed misleading "Prefix match" comment (was actually substring match)
v0.5.0 — Go parser
What's New
- Go parser: Full support for exported types (struct, interface, defined, alias), functions, methods with receivers, struct fields, interface methods, var/const (single and grouped with iota), and grouped type blocks.
- Generated file detection: Files with
// Code generated ... DO NOT EDITare automatically skipped. - Compact method signatures: Receiver prefix stripped from method signatures (e.g.
Execute() errorinstead offunc (*Command) Execute() error), reducing token cost onget_classresponses.
Tested On
| Project | Files | Records | Time |
|---|---|---|---|
| cobra (spf13) | 15 | 249 | <0.1s |
| gin (gin-gonic) | 41 | 574 | <0.1s |
| client-go (kubernetes) | 219 | 2,760 | 0.4s |
Install
pip install codesurface==0.5.0
v0.4.1 — MCP Registry fix
Patch release to fix MCP Registry publish. No code changes from v0.4.0.
Install
pip install codesurface==0.4.1
v0.4.0 — Java parser
What's New
- Java parser: Full support for classes, interfaces, enums, records, annotation types, and their public members. Javadoc extraction included.
- MCP Registry: codesurface now publishes to the official MCP Registry on every release.
Tested On
| Project | Files | Records | Time |
|---|---|---|---|
| Paper (PaperMC) | 2,909 | 33,973 | 2.3s |
| guava (Google) | 891 | 8,377 | 2.4s |
Install
pip install codesurface==0.4.0
v0.3.0 — Multi-language support
What's new
- Python parser — indexes
.pyfiles, captures classes, methods, properties, functions, module-level variables - TypeScript parser — indexes
.ts/.tsxfiles, captures exported classes, interfaces, enums, namespaces, functions, type aliases, and their members
Tested on
| Project | Language | Files | Records |
|---|---|---|---|
| immich | TypeScript | 919 | 7,957 |
| ant-design | TypeScript | 2,947 | 5,452 |
| dify | TypeScript | 4,903 | 5,038 |
| vscode | TypeScript | 6,611 | 88,293 |
| Unity game | C# | 129 | 1,018 |
| codesurface | Python | 7 | 72 |
Zero duplicate FQNs across all projects.
Install
pip install codesurface==0.3.0v0.2.0
Constructor support
get_class now shows constructors in a dedicated section, making DI wiring visible without reading source files.
Class: CampEntryPoint
Declaration: class CampEntryPoint : IStartable, IDisposable
-- CONSTRUCTOR (1) --
CampEntryPoint(CampController campController, DragDropController dragDropController, ...)
-- METHODS (2) --
void Dispose()
void Start()
Changes
- Parser captures multi-line constructors (up to 50 lines of parameters)
get_classoutput separates constructors from regular methods- Fixes missing constructors for classes with large DI parameter lists
v0.1.0
Initial release.
- 5 MCP tools:
search,get_signature,get_class,get_stats,reindex - Indexes any C# codebase at startup (Unity, .NET, Godot)
- Incremental reindex via file mtime diffing
- ~77% fewer tokens vs skilled Grep+Read agents on real workflows