v1.7.0 — Token-efficiency levers and Go multi-module support
Version: 1.7.0
v1.7.0 is the token-efficiency pass. Every MCP tool that could return runaway output now accepts density-control parameters (summary, top_n, format, limit, offset, directory, check), so AI agents can ask for as much or as little detail as the next step actually requires. Full output remains the default — these parameters are opt-in.
The release also lands full Go multi-module support, a rewrite of the progressive-disclosure docs and MCP server instructions so agents learn the efficient call pattern automatically on connect, and a set of indexing fixes that close real gaps in Python and Go corpus discovery.
The v1.0.0 API freeze remains in effect: tool signatures, CLI flags, and plugin schema are unchanged.
Added — token-efficiency controls
Section titled “Added — token-efficiency controls”Canopy’s MCP tools can return very large payloads on large codebases. In v1.7.0, every tool that could return runaway output accepts one or more density-control parameters. Full output remains the default — these parameters are opt-in.
Representative reductions, measured across three reference repositories:
| Tool | Control | Best measured reduction |
|---|---|---|
canopy_find_cycles | summary=true, top_n=N | Up to ~420× on cycle-heavy repos |
canopy_health_check | summary=true | ~25–30× on large finding sets |
canopy_survey (new) | n/a (bundled) | ~11× vs. the equivalent multi-call orientation |
canopy_prepare | format=concise | ~8× on pre-edit inspection |
canopy_validate | format=concise | ~6–7× |
canopy_search | summary=true | ~2–4× on broad queries |
canopy_git_blame | summary=true | ~7–17× on long-lived files |
canopy_understand | format=concise | ~4–13× on hub files |
canopy_architecture_map | format=json | ~1.5–1.6× |
End-to-end, a full refactor workflow that previously cost ~4,500 tokens of tool output now costs ~425 tokens when the agent uses these controls through the progressive-disclosure ladder — about a 10× reduction.
Added — progressive-disclosure docs and MCP instructions
Section titled “Added — progressive-disclosure docs and MCP instructions”- New Progressive Disclosure guide covering the four disclosure tiers (assess → triage → orient → detail), a parameter reference by tool family, five workflow recipes, and a per-tool quick reference.
- The MCP Tools Reference now documents every density-control parameter alongside the tool signatures.
- MCP server instructions rewritten. Agents that connect via MCP receive a compact instruction block on handshake that teaches the progressive-disclosure ladder with concrete examples. No prompting from the operator is required — agents learn the efficient call path automatically.
Added — Go multi-module support
Section titled “Added — Go multi-module support”Previously, Canopy’s Go resolver only handled relative imports. Module imports such as go.etcd.io/etcd/api/v3/... were treated as external and dropped from the graph, which meant graph tools (trace_dependents, trace_imports, find_cycles, check_wiring, dependency_graph) returned empty results on Go monorepos.
v1.7.0 adds full multi-module go.mod discovery with longest-prefix matching, so every intra-repo Go import resolves. On a representative Go monorepo this took the resolved-import edge count from zero to the thousands and made the graph tools fully functional.
- Python and Go indexing — the default discovery list has been expanded so
canopy index .picks up.pyand.gofiles out-of-the-box, matching the five languages Canopy officially supports (TypeScript, JavaScript, Python, Rust, Go). Previously these extensions required a per-repo config override. - Embedding runtime pre-flight —
canopy index --with-embeddingsnow emits a clear error with remediation steps if the embedding runtime isn’t available, instead of crashing. - JavaScript parsing — a tree-sitter grammar version mismatch caused every
.js/.mjs/.cjsfile to fail to parse silently. Fixed; JavaScript repositories now index correctly. - Colorblind-safe status indicators — status banners and badges now carry semantic icons in addition to color, so red-green and blue-yellow colorblind users receive the signal through shape as well as hue.
Deferred to v1.8.x
Section titled “Deferred to v1.8.x”These items were originally scoped alongside v1.7.0 and ship in subsequent minor releases:
- macOS Gatekeeper notarization so the quarantine dialog does not appear on first run.
- Native installers per platform — Homebrew tap on macOS,
.deb/.rpmon Linux,.msiorwingeton Windows. - Alpine / musl Linux builds for fully-static portable binaries.