Skip to content

v0.21.0 — Skills reliability, Integrations setup, and six new skills

Choose a tag to compare

@ianclemence ianclemence released this 04 Sep 06:11
· 630 commits to main since this release

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 ProtectHome made user-local installs invisible); tokens moved to a service-owned dir outside backup roots; corrected init --noauth_local_server device 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
  • speedtest binary 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)