Repository navigation
v0.21.0 — Skills reliability, Integrations setup, and six new skills
Ghost v0.21.0
Skills reliability, productized integrations setup, and six new credential-free skills.
What's New
Generic Capability Contract — No More Skill Wandering
Skills now declare a generic execution contract instead of relying on prompt prose: intent → capability → readiness check → bounded execution (primary → single fallback → clean failure) → validated result. Once Ghost commits to a skill, only that capability's tools may run — weather can no longer wander into web_search, list_dir, or memory when an API response is poor. No per-skill special cases; unknown future skills get a safe default.
Integrations Setup in the Web Console
New Connections → Integrations section. Calendar (Google device flow, works behind NAT with zero inbound), flight data key, and Home Assistant URL/token all configure through the product — no SSH, no .env editing. Secrets stay in .secrets.json (0600, excluded from backups); the Skills list links directly to setup, and chat messages point there instead of dumping gcalcli errors or AVIATION_API_KEY names.
Honest Skill States
Badges now report real readiness (ready / needs_configuration / disabled) instead of the coarse optional flag. Amber means you need to do something — command-only skills (git, tmux, network, system, file tools) ship green because their binaries install by default. Disabled skills answer honestly in chat instead of being silently routed around, and toggles (chat or console) record intent so syncs never flip them.
Six New Built-in Skills (No Credentials)
unit-converter (offline metric/imperial/cooking), world-clock (offline zoneinfo, any city pair), calculator (offline safe arithmetic, tips/splits), dictionary (free API), translate (free API, any language pair worldwide), timer (ephemeral one-shot countdowns distinct from durable reminders).
Factory Reset & Privacy
/reset (all|chats|memory|automations|context|devices, --yes, --include-secrets/--devices) and /clear all give a true fresh install that preserves pairing by default. Internal paths stripped from prompts, history, telemetry, and Activity (no more 202609/20260903 or /var/lib/... in user views). Clarification is a natural ask-and-resume (no 5-minute hangs); scheduler deduplicates identical automations and stays coherent in the device timezone.
Bug Fixes
- Calendar installed system-wide by default (service
ProtectHomemade user-local installs invisible); tokens moved to a service-owned dir outside backup roots; correctedinit --noauth_local_serverdevice flow - Cron store format and heartbeat path fixes; schedule timezone now prefers per-request device timezone with UTC fallback
- Custom skill installs validated (name, size caps, blocked types, frontmatter) with tests
- Skill lint CI test guards frontmatter hygiene
Known Limitations
- Calendar needs a live Google consent to complete; flight needs an
AVIATION_API_KEY— both correctly report setup state, never faked speedtestbinary is ready but speedtest.net recently 403'd from this network; runtime surfaces a clean retryable error- Full 40-skill live matrix still needs a quiet-provider window (DeepSeek free-tier cooldowns)