Skip to content

Releases: KOE73/SeMaps

SeMaps 0.4.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 13:42
a7e7455

A small release about trusting the code graph: it no longer loses lines, and it says how fresh it is.

Fixed

  • Every site line is kept. A method that constructs or calls the same target twice showed only the first line (@51); now the graph shows all of them (@51,69). The extractor already reported them; the host dropped all but one while building the graph.

New

  • Graph answers say how fresh their facts are. Every answer starts with facts: run <extractor> <time>, <age> old, and adds a warning: when that run lacks edge kinds the .semaps entry asks for (for example calls switched on after the last run), when the latest run failed, or when the extractor never ran. JSON answers carry the same in facts[]. Before, the graph silently answered from stale facts, and an agent could conclude "nobody calls this".
  • graph_status (MCP tool and GET /api/graph/{project}/status): per extractor, the latest run and its state and age, the run the graph is built from, the edge kinds asked for vs. present, and whether a watcher is active or a watch run is pending. Facts only, no guessing.
  • extract with wait: true runs the extractors and returns when they finish, with each run's state, time, symbol and edge counts — "kick and wait" in one call.
  • The Go watcher reacts only to *.go, go.mod and go.sum.

Changed

  • extract without wait now returns at once with the run ids instead of waiting. sync still waits.
  • Nothing runs by itself: neither host start nor a change of .semaps starts an extraction. The facts: line and warning: say when the graph is behind; extract brings it up to date.

Measurement

Four questions about a 623-file C# project, two identical Claude Sonnet agents — one with grep and file reads only, one with the SeMaps code graph:

Text search Code graph
agent tokens 96.5k 69.4k (−28%)
tool calls 14 2
time 51 s 32 s

Both answered completely; the graph agent got its callers from facts, the text agent partly by inference. One run on one project, not a study; the token counts include each agent's fixed prompt.

The full list of changes (in Russian) is in CHANGELOG.md.

Platforms

Proven on Windows. The Linux and macOS (arm64) builds pass the tests in CI on Linux but have not been tried in real work with the editor. There is no installer there: unpack the archive and put semaps with its extractors/ folder on your PATH; on macOS remove the quarantine first (xattr -d com.apple.quarantine semaps), since the binary is not signed.

SeMaps 0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 12:20
1b6e4c4

The biggest release so far: since 0.3.0 the workspace format, the host and almost the whole editor have changed. A workspace in the old format is rewritten by semaps migrate (see docs/ADOPTING.md); semaps check tells you when it is needed.

SeMaps at a glance

Highlights

  • The host owns the model. The editor and agents work on one shared working model: changes show in every window at once, survive a restart, and the «Changes» panel shows what is unsaved and who made it — human or agent.
  • A full MCP server (semaps mcp, official SDK): read and write projects, entities, relations and texts; view tools (layout, containers, visibility, routing); render_view lets the agent see a view as a picture; questions to the live code graph (inheritance all the way down, who holds / calls / constructs, places in code).
  • Graph before grep. The server tells agents to ask the code graph about structure instead of searching text: one call with files and lines instead of many greps — faster and far fewer tokens.
  • A live code graph at /app/#graph: algorithmic layout, grouping and colouring, live updates while you code (watch), nodes copied onto views.
  • Go extractor (new), next to C# and TypeScript; all three ship in every release archive.
  • Contract v5: one dictionary of kinds and relation types (kinds.json), containers are entities, an entity has realizations in code in several languages, lines on a view are an overlay of the registry.
  • Editor for architects: draw relations by dragging an arrow or from the context menu; orthogonal routing that keeps lines off blocks, frames and captions and picks the best side itself; a «Line routing» panel to tune it live; smooth dragging on big views.
  • Mistakes can be undone for real: an authored entity or relation can be removed (editor, HTTP, MCP remove on a human's request); the removal waits for Save like any change.
  • Agents can make a map pass semaps check: set_text with from and mark_translated mark translations, set_view_axis gives views their own axes.

A measurement: graph vs. text search

Four questions about a 623-file C# project (subclasses two levels down, who holds a context object, where it is constructed, who calls it), two identical Claude Sonnet agents — one with grep and file reads only, one with the SeMaps code graph:

Text search Code graph
agent tokens 96.5k 69.4k (−28%)
tool calls 14 2
time 51 s 32 s

Both answered completely; the graph agent got its callers from facts, the text agent partly by inference. One run on one project, not a study; the token counts include each agent's fixed prompt, so the difference in the work itself is larger. The graph is only as fresh as the latest extractor run — keep watch: true or run extraction first.

Notes

  • The code graph is proven in real work on C# only; the TypeScript and Go graphs have not been tried on real projects yet.
  • Each extractor needs its language's runtime: .NET for C#, Node 24+ for TypeScript, Go for Go.

The full list of changes (in Russian) is in CHANGELOG.md.

Platforms

Proven on Windows. The Linux and macOS (arm64) builds pass the tests in CI on Linux but have not been tried in real work with the editor. There is no installer there: unpack the archive and put semaps with its extractors/ folder on your PATH; on macOS remove the quarantine first (xattr -d com.apple.quarantine semaps), since the binary is not signed.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 06:46

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 08:29

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 05:19