Skip to content

Releases: Codeturion/codesurface

v0.7.0 — Line numbers for targeted reads

28 Feb 01:17

Choose a tag to compare

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_params returns (str, end_line) for constructors and methods
  • Go: captures end_i from _collect_signature() for methods, functions, and interface methods
  • Java: constructors, methods, and interface methods use end_i from _collect_signature()
  • Python: multi-line typed class fields track skip_lines
  • TypeScript: accessors and interface methods capture end_i from _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_params now tracks end on every loop iteration, so if the 50-line lookahead exhausts without finding ), line_end still 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

27 Feb 21:29

Choose a tag to compare

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 instructions field 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_incremental returns (str, bool) tuple for structured change detection
  • Fixed misleading "Prefix match" comment (was actually substring match)

v0.5.0 — Go parser

26 Feb 23:17
5ff4f5f

Choose a tag to compare

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 EDIT are automatically skipped.
  • Compact method signatures: Receiver prefix stripped from method signatures (e.g. Execute() error instead of func (*Command) Execute() error), reducing token cost on get_class responses.

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

26 Feb 21:27

Choose a tag to compare

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

26 Feb 21:25

Choose a tag to compare

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

26 Feb 19:59

Choose a tag to compare

What's new

  • Python parser — indexes .py files, captures classes, methods, properties, functions, module-level variables
  • TypeScript parser — indexes .ts/.tsx files, 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.0

v0.2.0

25 Feb 22:46

Choose a tag to compare

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_class output separates constructors from regular methods
  • Fixes missing constructors for classes with large DI parameter lists

v0.1.0

25 Feb 21:44

Choose a tag to compare

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