v0.7.4
Two themes this release: log rolling so long-running Coyote sessions don't blow up their log files, and a batch of sandbox (coyote --sandbox) fixes that make the first-run experience actually work on macOS.
New
- Rolling log files. Coyote now rotates its log file automatically so a long-running session (or a chatty agent) can't grow the log unbounded. Nothing to configure — it just happens.
- --tail-logs survives rollovers. The tailer now follows the log across rotations and idles between reads instead of spinning, so coyote --tail-logs is finally cheap to leave running in a second pane.
Sandbox fixes
If you tried coyote --sandbox on macOS in v0.7.x, it likely (a) failed halfway through the usql install with bzip2: (stdin) is not a bzip2 file, (b) left you attached to an empty container that didn't detect your config, or (c) prompted you for a fresh vault password. All three are fixed:
- Pinned usql version in the sbx kit. The install no longer hits api.github.com to resolve "latest" (which was rate-limited on some IPs and silently wrote an HTML error page into the tarball). Bumped to a known-good release with curl -fS --retry 3.
- Config now lands at the right path. The bootstrap copy was writing to /home/agent/.config/ but the sandbox's COYOTE_CONFIG_DIR points at /home/agent/.config/coyote/, so the sandboxed Coyote never saw your host config. Fixed.
- Top-level config files are no longer silently dropped. The sbx cp recursive directory copy on macOS lost files carrying the com.apple.provenance extended attribute (Docker Desktop's tar bridge issue). Coyote now iterates top-level entries and copies each individually, which sidesteps it.
- Ownership is now correct. Both the copied config tree and the vault password file are chown -R agent:agent'd after copy, so Coyote inside the sandbox can actually read them.
- sbx create / sbx run invocation cleaned up. --name moved to the canonical first-flag position (was being ignored in some cobra parse paths), and --kit is re-passed to sbx run on reattach because sbx requires it even for existing sandboxes.
- Kit spec updated for newer sbx. Reworked the embedded spec.yaml for the sbx CLI update that requires mixins to be directories with a spec.yaml inside, not standalone files.
Docs & tooling
- Fixed URLs and misc issues in the install_coyote.sh / .ps1 scripts.
- Wiki: added a Multiple sandboxes per workspace section — you can run any number of independent sandboxes off the same directory by passing coyote --sandbox .
Upgrading
Cargo:
cargo install --locked coyote-aiHomebrew:
brew upgrade coyoteIf you already have a broken sandbox lying around from a previous attempt, blow it away before your first launch on v0.7.4:
sbx rm -f coyote coyote-coyote # or whichever names you used
coyote --sandboxAI Use Disclosure
The above release notes were created by Claude Opus 4.8 and reviewed and revised by myself, @Dark-Alex-17.
All code was first designed by myself and tested out with simple POCs. AI was used to do the implementation step-by-step with myself intervening between each step to review, sometimes write more complex code manually (because I don't trust it), and make changes and catch bugs.
All bugs that emerge as part of this release and any new code added are fully my responsibility and fully created by myself.
Every line of code written was thoroughly reviewed, tested, and devised by myself prior to any commit.
Models used:
- Claude (Opus and Sonnet)
- OpenAI (GPT 5.4)
- Ollama (Gemma4, Phi4, Qwen3, llama3.3)
- Mistral (Codestral and Devstral)
- Gemini (3.1-pro-preview)