Releases: supernovae-st/supernovae-cli
v0.17.0
Full Changelog: v0.15.5...v0.17.0
v0.15.5
Full Changelog: v0.15.4...v0.15.5
v0.15.4 - crates.io publish fix
Fix
This is a patch release to fix the crates.io publishing that failed for v0.15.3.
All keyring UX improvements from v0.15.3 are now properly available via cargo install spn-cli.
Changes
- Bump
spn-clientto 0.3.3 with RefreshSecret/WatcherStatus IPC types - Bump
spn-clito 0.15.4
Upgrade
# Cargo
cargo install spn-cli --force
# Homebrew
brew upgrade spn
# Docker
docker pull ghcr.io/supernovae-st/spn:0.15.4See v0.15.3 release notes for the full list of new features.
Full Changelog: v0.15.3...v0.15.4
v0.15.3 - Keyring UX Revolution
spn v0.15.3 - Keyring UX Revolution
TL;DR
Zero-blocking daemon startup - No more waiting for keychain popups before you can use spn.
# Before: daemon blocked until all keychain popups acknowledged (13+ popups!)
spn daemon start # ... wait ... wait ... wait ...
# After: instant availability with lazy loading
spn daemon start --skip-preload --lazy # Ready in <100msWhat's New
Daemon Startup Modes
| Flag | Behavior |
|---|---|
--skip-preload |
Skip loading secrets at startup (socket available immediately) |
--lazy |
Load secrets on-demand (no keychain access until needed) |
| Both flags | Zero-blocking startup, secrets loaded on first request |
Progress Output
Now you can see exactly what's happening during preload:
[1/13] Loaded: anthropic
[2/13] Loaded: openai
[3/13] Not found: mistral
...
Preload complete: 3 loaded, 10 not found, 0 errors
Auto-Refresh After spn provider set
When you store a new API key, the daemon cache is automatically updated:
spn provider set anthropic # Daemon cache refreshed automatically
# No need to restart daemon or manually invalidate cacheNew IPC: RefreshSecret
For tool integrations, the new RefreshSecret message allows external tools to trigger cache refresh:
let mut client = SpnClient::connect().await?;
let refreshed = client.refresh_secret("anthropic").await?;Breaking Changes
None - all changes are additive and backward compatible.
Upgrade Path
# Option 1: Homebrew
brew upgrade spn
# Option 2: Cargo
cargo install spn-cli --force
# Option 3: Docker
docker pull ghcr.io/supernovae-st/spn:0.15.3Full Changelog
Added
--skip-preloadflag for immediate daemon availability--lazyflag for on-demand secret loading- Progress output during secret preload
RefreshSecretIPC message for cache invalidation
Changed
- GetSecret handler uses
get_or_load()for lazy loading - Auto-refresh daemon cache after
spn provider set
Fixed
- Use
&Pathinstead of&PathBufinvalidate_workflow_path
Full Changelog: 0.15.2...0.15.3
Full Changelog: v0.15.2...v0.15.3
v0.15.2
Fixed
- docker: Bundle CA certificates with webpki-roots
What's Changed
- chore: release by @github-actions[bot] in #13
Full Changelog: v0.15.1...v0.15.2
v0.15.1
Added
- cli: Add lazy install prompt to spn nv command
- cli: Add lazy install prompt to spn nk command
- cli: Add ecosystem status to setup wizard
- cli: Add ecosystem tool detection module
- cli: Add --from-openapi flag to mcp wrap command
- mcp: Add wrap wizard for REST-to-MCP tool generation
- cli: Add unified backup system
- spn-mcp: Add OpenAPI 3.0 parser module
Changed
- Apply cargo fmt
Documentation
- Fix env vars, versions, and add Code of Conduct
- Complete v0.15.0 release preparation
Fixed
- deps: Replace atty with std::io::IsTerminal
- security: Harden backup system against multiple vulnerabilities
- test: Avoid clippy approx_constant warning
Security
- mcp: Remove unnecessary borrow in hint_line call
Security
- mcp: Add payload size and parameter type validation
What's Changed
- chore: release by @github-actions[bot] in #12
Full Changelog: v0.15.0...v0.15.1
v0.15.0
╔═══════════════════════════════════════════════════════════════════════════════╗
║ 🚀 SPN v0.15.0 — THE AGENTIC AI TOOLKIT ║
╠═══════════════════════════════════════════════════════════════════════════════╣
║ ║
║ 🤖 Agents │ 📋 Jobs │ 🧠 Memory │ 🔮 Autonomy │ 🛠️ spn-mcp ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
✨ Highlights
| Feature | Status | Impact |
|---|---|---|
| 🤖 Agent Delegation | ✅ New | Multi-agent task delegation system |
| 📋 Job Scheduler | ✅ New | Background workflow execution |
| 🧠 Cross-Session Memory | ✅ New | Persistent context across sessions |
| 🔮 Autonomy Orchestration | ✅ New | Self-directed task execution |
| 🛠️ spn-mcp Crate | ✅ New | Dynamic REST-to-MCP wrapper |
| 🖥️ Windows CI | ✅ New | Full Windows support in CI |
Added
- daemon: Wire JobScheduler to IPC handler and enhance Nika setup
- ux: Add TransformingSpinner to model commands
- model: Add pull_with_progress method to ModelManager
- protocol: Add ModelProgress type for streaming updates
- spn-mcp: Add rate limiting and MCP Resources support
- spn-mcp: Add test infrastructure and security hardening
- daemon: Add autonomy orchestration system (Phase 13)
- daemon: Add proactive suggestion system (Phase 12)
- daemon: Add agent delegation system (Phase 11)
- daemon: Add reasoning trace capture system (Phase 10)
- daemon: Add cross-session memory system (Phase 9)
- suggest: Enhance smart wizard with interactive mode (Phase 8)
- jobs: Add jobs CLI commands (Phase 7)
- daemon: Add job scheduler for background workflows
- daemon: Add MCP server over stdio
- suggest: Add context-aware suggestion wizard
- tui: Add spn explore interactive TUI
- spn: Integrate spn-mcp into main CLI
- spn-mcp: Add dynamic REST-to-MCP wrapper crate
- mcp: Add
spn mcp logscommand for viewing server logs - completion: Add install/uninstall/status subcommands
- model: Add
spn model runcommand for LLM inference - status: Add unified status dashboard with ASCII rendering
Changed
- ci: Add Windows to test matrix
- release: Add spn-mcp to release-plz.toml
- docs: Update all version references to v0.15.0
Documentation
- plan: Complete master plan v0.15-v0.18
- adr: Add ecosystem architecture ADRs (001-003)
- plan: Add spn v0.15-v0.18 evolution roadmap
Fixed
- setup: Correct Windsurf settings.json path detection
- daemon: Add missing autonomy type exports
- spn-mcp: Critical error handling and security hardening
- spn: Remove phantom explore/tui module references
🏗️ Architecture
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 6-CRATE WORKSPACE (v0.15.0) │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ spn-core (0.1.1) Core types, providers, validation │
│ spn-keyring (0.1.3) OS keychain integration │
│ spn-ollama (0.1.4) Ollama model backend │
│ spn-client (0.3.0) Daemon SDK for external tools │
│ spn-mcp (0.1.0) Dynamic REST-to-MCP wrapper ← NEW │
│ spn-cli (0.15.0) Main CLI binary │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
What's Changed
- chore: release by @github-actions[bot] in #11
Full Changelog: v0.14.2...v0.15.0
v0.14.2
Added
- ux: Add human-readable formatters and enhanced help
Changed
- Fix formatting
What's Changed
- chore(spn-cli): release v0.14.2 by @github-actions[bot] in #9
Full Changelog: v0.14.1...v0.14.2
v0.14.1
What's Changed
- chore(spn-cli): release v0.14.1 by @github-actions[bot] in #8
Full Changelog: v0.14.0...v0.14.1
v0.14.0
Added
- ux: Migrate to semantic design system
- cli: V0.14.0 "The Delight Release" - UX improvements
- cli: Complete Phase 3-5 improvements
- cli: Complete Phase 2 UX improvements
- ux: Add comprehensive UX module and improve CLI experience
Changed
- Cargo fmt
- Apply cargo fmt
Fixed
- lint: Resolve clippy warnings for io_other_error and uninlined_format_args
- ux: Complete migration of remaining 4 files
- cli: Resolve 3 bugs found in e2e testing
- lint: Resolve all clippy warnings in integration tests
Added
- 🦙 spn-ollama: Added
chat_stream()method toModelBackendtrait for streaming chat completions - 🦙 spn-ollama: Added
BoxedTokenCallbacktype for trait object compatibility - 🦙 spn-ollama: Added
DynModelBackend::chat_stream()for runtime polymorphism with streaming - ⏱️ spn-ollama: Added
ClientConfigwith configurable timeouts (connect, request, model) - 🔄 spn-ollama: Added retry logic infrastructure (
with_retry(),is_retryable())
Fixed
- 🔧 CLI: Replaced all
exit(1)calls with properSpnError::CommandFailedin provider.rs (11 calls) - 🔧 CLI: Replaced all
exit(1)calls with properSpnError::CommandFailedin mcp.rs (4 calls) - 🔧 CLI: Replaced all
exit(1)calls with properSpnError::CommandFailedin skill.rs (3 calls) - 🔧 CLI: Replaced all
exit(1)calls with properSpnError::CommandFailedin model.rs (previous commit) - 🔧 CLI: Fixed
if_same_then_elseclippy warning in publish.rs
Technical
- Error handling now returns
Result<(), SpnError>consistently across all CLI commands - Improved error messages with proper context and suggestions
What's Changed
- chore: release by @github-actions[bot] in #5
New Contributors
- @github-actions[bot] made their first contribution in #5
Full Changelog: v0.1.3...v0.14.0