Skip to content

deskd 0.3.0 — the provider seam

Choose a tag to compare

@hongdp hongdp released this 08 Aug 19:13
· 11 commits to main since this release
606bdee

The release where a fresh clone can run its own agents, not just the demo.

The provider seam

  • deskd.providersClaudeCodeProvider ships as the built-in default (per-role model via argv; the shared reasoning tiers low|medium|high|max map to a thinking-token budget in the child env). CommandProvider turns any CLI into a provider from an argv template with placeholders — unset values drop their element (and its dangling flag) cleanly. Register customs via configure(providers=(…,)); a host entry named claude replaces the built-in instead of forking it. Subclass Provider for custom preflights and sandboxes.
  • Per-role runtime tuning as engine statedeskd runtime show | set-provider | set-model | set-reasoning <value|default> --role R, stored on the registry row, validated at set time. Model/thinking differ per role on purpose.
  • deskd agent run | command | session-provider — the driver arm. Enforces the invariants every driver must keep: sessions never resume under a provider that did not create them (owner recorded as harness#provider; the new provider takes over at the next cold spawn); roles with no declared tool grant get the driver's fail-closed default; preflight refusal exits 75 and leaves the demand pending; sessions are parked after a turn, not ended. The reference cron driver now launches through this seam (DESKD_AGENT_CMD remains as the deprecated raw-command path).

Wake-ladder honesty (since 0.2.x)

  • An unpaid termination vote names itself: wake labels and human-rung pages say "your vote closes it", wake_sources answers with votes_owed, and escalation pages carry a durable Ref: that outlives self-healing demands.
  • Escalations can be answered: asks are demands on someone, not telemetry; a rejection is a demand on the proposer.
  • Wake generations, resumable meetings, console static revalidation, vacated-desk rendering, and a host-extensible console nav.

Upgrade: pip install -U "deskd[web]". New public modules only — no breaking changes; existing hosts keep their own drivers until they opt into the seam.