Skip to content

v0.3.7

Latest

Choose a tag to compare

@sh1ftred sh1ftred released this 08 Jul 09:01
44cda25

July 8, 2026

πŸš€ New Features

  • update command β€” routstrd update downloads and installs new binaries for both routstrd and cocod, then gracefully restarts running daemons so updates take effect immediately. Skips daemons that aren't running or when using a
    remote routstrd instance. Failures are reported without rolling back the update.

πŸ› Bug Fixes

  • Periodic Nostr event refresh β€” The daemon now calls refreshNostrEvents() on startup and every 21 minutes, keeping provider discovery (kind 38421) and LGTM reviews (kind 38425) fresh without manual intervention.

  • Fixed renderToday crash on missing usage summary β€” Stats variables now initialize with sensible defaults instead of being used before assignment when stats.summary is absent.

  • Fixed stale usage-summary test fixtures β€” Hardcoded May 2026 timestamps aged out of the 30-day rolling window; tests now compute timestamps relative to now.

πŸ”„ SDK Upgrade: @routstr/sdk 0.3.12 β†’ 0.3.15

  • Tinfoil EHBP attestation β€” Encrypted transport for tinfoil-* models via enclave attestation and HPKE.
  • Auto-discovery in fetchAIResponse β€” Callers can pass adapters directly; the SDK bootstraps discovery, ranking, and routing internally.
  • xcashu refund robustness β€” Refund token tried before original in error path; 404s retried 3Γ— with 2-minute intervals; 425 Too Early handled without throwing; orphaned IOU tokens cleaned up after successful refunds.
  • apikeys failover β€” Transient "ongoing requests" errors now trigger provider failover instead of throwing.
  • Stale model cleanup β€” Models from disappeared Nostr providers no longer leak into rankings.
  • ProviderRegistry removed β€” Consumers use DiscoveryAdapter directly; βˆ’107 lines across the SDK.
  • Nostr event store now treated as persistent source of truth β€” the erroneous 210-minute TTL on cached events is gone.

🧹 Internal

  • Daemon synced with SDK's DiscoveryAdapter API after the ProviderRegistry removal.