Three Hermes-inspired capabilities ported to OpenFang's Rust architecture. Each wired end-to-end: backend + API + dashboard + (where applicable) TUI. 51 new tests, zero clippy warnings, zero regressions across 2460+ workspace tests.
Features
Multi-destination cron delivery
Cron jobs fan out results to multiple targets in one declaration:
- Channel — any of the 40 existing channel adapters (Telegram, Slack, Discord, WhatsApp, Matrix, Teams, …)
- Webhook — POST JSON
{job, output, timestamp}with optionalAuthorizationheader - LocalFile — path + append/overwrite flag
- Email — with subject template support
Per-target failures log but never abort the job. Edit targets through the Scheduler dashboard page or the new PUT /api/schedules/{id} endpoint.
Skill config injection
Skills are now templates. Declare config vars in SKILL.md frontmatter:
config:
github_token:
description: GitHub personal access token
env: GITHUB_TOKEN
required: true
default_branch:
description: Default branch name
default: main
required: falseResolver order per var: user config.toml → env var → default → error if required missing. Secrets auto-redacted in the rendered skill prompt (*_token, *_key, *_secret, password). Manage through the new Skills page Configure modal, or [skills.<name>] in config.toml.
Unified slash command registry
All 32 slash commands live in one source of truth with categories, aliases, and per-surface filtering (CLI / Channel / Web). Auto-generated help, autocomplete, and the new GET /api/commands endpoint for dashboard consumption. Prevents command drift across CLI, web chat, Telegram, Slack, Discord, and 37 other channels.
API additions
GET /api/commands?surface=web|cli|channel|allGET/POST/PUT /api/schedulesnow round-tripdelivery_targetsGET /api/schedules/{id}/delivery-logGET /api/skills/{id}/configPUT /api/skills/{id}/configDELETE /api/skills/{id}/config/{var_name}
Improvements
- Atomic
config.tomlwriter (tempfile + rename) prevents corruption on crash - Kernel
skill_config_overridesenables live config updates without restart - Fixed 4 pre-existing clippy warnings (
manual_contains) - Tauri desktop config bumped so
.dmg/.msifilenames now match the release version (no moreOpenFang_0.5.9_…on a 0.6.0 release)
Testing
- 51 new tests (cron_delivery 16, commands 18, config_injection 10, API integration 7)
- All 2460+ workspace tests pass
cargo clippy --workspace --all-targets -- -D warnings— zero warnings- Live daemon integration verified for each feature
Full diff: v0.5.10...v0.6.0