Skip to content

v1.6.0 — Dashboard, CI Indexes, and Feature Parity

Released: 2026-04-19

The pricing-page parity release. Every feature advertised on the Canopy website is now implemented and functional. This release adds the visual dashboard, CI-optimized index caching, and tier-aware MCP behavior — the last pieces needed for feature completeness across all four license tiers.


A local web dashboard for visual codebase exploration. Runs as part of canopy serve or standalone via canopy dashboard.

  • canopy serve --dashboard — starts the MCP server with the dashboard enabled on port 4040
  • canopy dashboard — launches the dashboard independently without the MCP server
  • 12 API endpoints under /api/v1/:
    • /status — index health, file counts, symbol counts, and version info
    • /health — health check results with severity breakdown
    • /search — full-text code search with highlighted results
    • /hotspots — files ranked by churn frequency (commits x lines changed)
    • /symbols — symbol browser with kind filtering and pagination
    • /graph/imports, /graph/dependents, /graph/cycles — dependency graph queries
    • /graph/architecture — architecture map generation
  • Embedded SPA — the dashboard frontend is compiled into the binary at build time. No external assets or CDN required.

Team-tier users can cache indexes to Cloudflare R2, eliminating full re-indexing on every CI run.

  • canopy index --cache-to r2://bucket/key — pushes the completed index to R2 after a full build
  • canopy index --use-cache r2://bucket/key — pulls a cached index before building, only re-indexing changed files
  • Example CI configs — GitHub Actions and GitLab CI templates in the docs showing optimal cache strategies
  • Repo registry — new ~/.canopy/repos.json tracks multiple repositories with their index paths, R2 cache keys, and last-indexed timestamps

The MCP server now customizes its system prompt based on the active license tier.

  • Community tier — instructions mention the 3 available tools and suggest upgrading for full access
  • Solo tier — instructions include workflow tools (canopy_prepare, canopy_validate) and dashboard mention
  • Pro tier — adds semantic search and advanced graph tools
  • Team tier — adds shared configs, CI caching, and admin portal references
  • Prepared-files tracking — the MCP session tracks which files have been prepared, preventing duplicate canopy_prepare calls within a session

Team admins can now revoke active sessions server-side.

  • admin_sessions D1 table — tracks all active admin portal sessions with creation time and expiry
  • Session invalidation APIDELETE /admin/sessions/:id immediately invalidates a session
  • Reassignment history — seat reassignments are logged with timestamps, old holder, new holder, and admin who made the change
  • /activate endpoint — rate-limited to 10 activations per license key per hour
  • Abuse alert webhook — when rate limits are hit, a webhook fires to the configured alert endpoint with the offending key ID and IP

  • semantic_search moved to Pro tier — was Solo, now requires Pro. Solo users retain all 21 MCP tools but semantic search results are replaced with a tier-upgrade message.
  • dependency_graph ungated for Solo — was Pro-only, now available to Solo and above. Viewing the dependency graph of your own codebase shouldn’t require a Pro license.
  • License feature gating is now tier-basedis_feature_enabled() checks features_for_tier(tier) instead of the signed features array. This means existing license files automatically gain access to new features added to their tier in future releases without re-keying.
  • Removed plugins and volume_keys features — these were listed on the pricing page but provided no value. Removed from the codebase, pricing page, and documentation.

  • /api/v1/hotspots SQL error — the query joined on fc.file_path but the file_changes table column is fc.path. Fixed.
  • canopy license displaying stale features — the CLI showed the features array from the signed license file instead of the current tier’s feature set. Now uses features_for_tier().
  • canopy --version showing old version — workspace Cargo.toml version was not bumped after feature parity changes.
  • CI gate failures — resolved formatting, clippy, test, and supply chain audit failures across the full workspace.

  • Heartbeat log purge — a Cron Trigger now deletes heartbeat records older than 90 days from D1, preventing unbounded table growth.
  • Air-gapped buildsreqwest is now an optional dependency behind the network feature flag. Air-gapped builds (--no-default-features --features air_gapped) produce a binary with zero network dependencies.

Drop-in replacement for v1.5.x. No breaking changes to MCP tool signatures, CLI commands, or the license file format.

License files are forward-compatible. Existing Solo, Pro, and Team licenses automatically gain access to the dashboard and any future features added to their tier. No re-keying required.

The plugins and volume_keys features have been removed. If your license file listed these features, they are simply ignored — no error, no degradation.

All 12 workspace crates now declare publish = false since Canopy is a commercial product distributed via R2, not crates.io.