Skip to content

Releases: emidhun/canopod

Canopod v0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 17:49
d3c34a1

Canopod 0.5.0 release notes

Canopy is now Canopod. The app, bundle identifier (com.midhunkumare.canopod), repository (emidhun/canopod), Homebrew cask (emidhun/canopod/canopod) and docs site (https://emidhun.github.io/canopod/) all use the new name. Upgrading keeps everything: on first launch Canopod moves your settings, state, credentials, logs and window preferences from the old com.midhunkumare.canopy directories, renames each worktree's .canopy/ to .canopod/, and keeps exporting CANOPY_CONTEXT_FILE and CANOPY_WORKTREE to agent sessions next to the new CANOPOD_* names. Homebrew moves canopy installs to the canopod cask on upgrade. Quit Canopy before launching Canopod for the first time.

Settings now has separate pages, rejects incomplete rows without discarding entered values, and preserves local edits when a background config read finishes. Files supports editing teardown and migration commands as well as provisioned files.

New worktrees default to <repo>/.worktrees. Relative worktree roots resolve against the repository; absolute roots remain absolute. Preview and creation use the same calculation.

The top-bar and command-palette Sync external worktrees action discovers Git-registered worktrees created by another agent or terminal. It also opens the existing reconciliation flow for registrations whose directories were deleted outside Canopod.

.worktreemanager.json supports setupPolicy and object-form setup entries (cmd, cwd, enabled). Setup completion markers live in .canopod/setup.json. Existing unrelated configuration keys survive Settings saves.

Agent waiting transitions now notify according to preferences and contribute to the app badge. Canopod checks for releases at most daily, announces available versions, and can install Tauri-signed updates automatically when the user opts in. A separate daily GitHub-star reminder can be disabled at any time. Manual checking and installation remain available in General settings.

Repository onboarding now detects npm, pnpm and Yarn, avoids invented Node commands for unknown projects, keeps database configuration conditional, and preserves existing Canopod configuration unless replacement is explicitly requested.

MCP access supports the shared desktop host and independent headless host with repository allowlists and separate grants for worktree setup, service control, and configuration. Headless setup can register a repository entirely from the authenticated CLI. Settings can configure current Claude Code and Codex clients without embedding the bearer token. MCP now publishes allowlisted repository discovery, detailed cached worktree state, a safe worktree-delivery prompt, stable output schemas, and typed structured tool output; every packaged platform runs protocol discovery and a cached-latency smoke before release. Destructive MCP operations remain unavailable until human approval and audit support exists.

Documentation and download links now target 0.5.0 and include a dependency-free simple web recipe. macOS artifacts remain ad-hoc signed and are not notarized; users must follow the documented unsigned-app installation steps.

Dependency security now has a pinned RustSec CI gate. The Tauri 2 glib advisory is resolved with the exact upstream soundness fix backported to an immutable fork commit, while compatible h2, quick-xml, rustls, anyhow, event-listener, and chacha20 fixes are locked directly.

The workspace now combines shell and agent sessions in one Terminal view. One + menu starts either type, and a single configured agent profile launches in one click. Logs alongside adds a resizable companion pane. Switching views preserves sessions and log filters; paused logs show new output counts and a return-to-latest action. Layout shortcuts are ⌘1 Logs, ⌘2 Terminal, and ⌘3 Terminal + logs.

Settings has a focused file list and editor, wider readable JSON previews, accessible controls and guarded saving. Service controls use consistent heights and theme status dots, with additional services and database tools under ⋯. Change review uses compact filenames with full-path tooltips. The status bar retains Pull and its submodule menu.

Database restore validates destination names, distinguishes creating a database from replacing one, and requires explicit acknowledgement before replacement. Reset can continue in the background. Bulk worktree removal blocks on incomplete or failed safety checks and offers retry.

The attention popup offers individual dismissal and Clear notifications for saved notices and setup reminders. Setup reminders are hidden for the current app session; dismissal never marks setup complete. A changed setup outcome can reappear. Live service crashes and agent requests remain actionable.

Validation includes 277 frontend tests, production TypeScript/build checks, cross-platform Rust tests and Clippy, a production CSP rendering check, and dependency auditing. Packaged installers also run version, launch and headless MCP smoke checks before publication. Signed updater metadata and installer SHA-256 checksums accompany the release.

Canopy v0.4.7

Choose a tag to compare

@github-actions github-actions released this 13 Aug 20:34
c07a722

Canopy v0.4.7 — a big step up from 0.4.0: the redesigned work surface, the agent lane, a proper onboarding flow, and experimental Windows & Linux installers.

Highlights

  • Redesigned app — one work surface with an always-obvious next action, a new modal layer, and a menu-bar tray.
  • Agent lane — an embedded terminal + coding agent per worktree, with per-worktree context, multiple agents/terminals, and clickable paths.
  • Onboarding — a guided add-a-repository flow; add repos from the sidebar (⇧⌘N) or the command palette.
  • Settings revamp — one-nav design, command groups, and repo custom commands surfaced as rail buttons.
  • Worktree management — multi-delete without type-to-confirm, Sync-prune of vanished worktrees, fetch-before-create, and backgroundable operations.
  • Appearance — bundled fonts, theme / density / accent, and text zoom (⌘±).
  • Backend hardening — correctness, stability, and performance work backed by a safeguard test suite.
  • Docs — a full documentation site at https://emidhun.github.io/canopy/, plus a new onboarding→worktrees demo on the README.

Downloads

Platform File
macOS (Apple Silicon) Canopy_0.4.7_aarch64.dmg — or brew install --cask emidhun/canopy/canopy
Windows (experimental) Canopy_0.4.7_x64-setup.exe (NSIS) · Canopy_0.4.7_x64_en-US.msi
Linux (experimental) .AppImage · .deb · .rpm

Install caveats (nothing is code-signed/notarized yet):

  • macOS quarantines the DMG — clear it with xattr -dr com.apple.quarantine /Applications/Canopy.app (Homebrew does this for you).
  • Windows SmartScreen may warn on first run — choose More info → Run anyway.
  • Linux & Windows builds compile and pass CI but aren't yet validated on a real desktop — feedback welcome.

See the Install guide for details.

Full Changelog: v0.4.0...v0.4.7

Canopy v0.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 08:43

The first public release of Canopy — a menu-bar git-worktree + dev-service manager. Every branch checked out, provisioned, and running side by side: per-worktree isolated databases, deterministic ports, declarative file provisioning, live service logs, in-place branch switching, and submodule-aware pulls.

Downloads

Platform File Notes
macOS (Apple Silicon) Canopy_0.4.0_aarch64.dmg — or brew install --cask emidhun/canopy/canopy Not notarized yet — after copying to Applications, run xattr -dr com.apple.quarantine /Applications/Canopy.app (or System Settings → Privacy & Security → Open Anyway). Homebrew handles this for you.
Linux (x86_64) — experimental .AppImage / .deb / .rpm Compiles and passes CI, but not yet validated on a real desktop (tray, popover, window chrome). Feedback and issues very welcome!

Highlights

  • Worktree discovery, create, delete — with submodule object-sharing
  • Per-worktree isolated Postgres database + deterministic ports (basePort + index*10)
  • Files to provision: seed + template any config file (dotenv/json/yaml/text) into every new worktree, declared in .worktreemanager.json
  • Per-service start/stop/restart with live logs, CPU/MEM/uptime
  • In-place branch switch (deps reused, submodules re-pinned) and per-submodule pull/switch
  • Database tools: switch, snapshot, export, restore, migrate
  • Tray popover + full manager window

Licensed AGPL-3.0.