Skip to content

v0.6.2

Choose a tag to compare

@donalddellapietra donalddellapietra released this 17 Jul 17:14

Patch Changes

  • RecordRoom now gates its HTTP debug API (/api/debug/*) behind ALLOW_DEBUG_ROUTES at the Durable Object's own ingress, matching the app-worker proxy gate. Enforcement lives at the one place every caller funnels through, so it can no longer be bypassed by a caller that forgets to gate. The platform's shared-data rooms hard-disable the debug API entirely. No change for apps that already gate via the proxy.
  • Refresh the AI chat model lineup to the current generation. ChatPanel's default picker and the scaffolded starter's ALLOWED_MODELS now offer Claude Sonnet 5 (new default), Claude Opus 4.8, Claude Haiku 4.5, and the GPT-5.6 family (Sol / Terra / Luna) alongside GPT-OSS 120B; the retired-generation entries (Sonnet 4.6, Opus 4.7, the GPT-5.4 picker rows) are dropped from the picker, while their ids stay server-allowlisted. The scaffolded chat route now sends reasoningEffort: 'none' for OpenAI models — GPT-5.6 on /v1/chat/completions rejects function tools otherwise ("Function tools with reasoning_effort are not supported"). Apps scaffolded before this release that upgrade deepspace must add the new model ids to their ALLOWED_MODELS in src/ai/chat-routes.ts AND add the same providerOptions: { openai: { reasoningEffort: 'none' } } to their streamText call for OpenAI models (or pass their own models prop to ChatPanel) — otherwise the picker's new ids are rejected with a 400 by design, and GPT-5.6 turns with tools error.
  • Add BaseRoom.disconnectAllSockets({ code?, reason? }) and a built-in internal
    POST /internal/disconnect-sockets endpoint (every room type, RecordRoom
    included). Use it after an out-of-band, server-side write (admin import,
    migration script, cron, server action) to close every live WebSocket (default
    close 1012 / state-refresh) so clients reconnect and fully resync — no more
    stale editors autosaving over server-side writes. Internal-only: reachable via
    DO stub fetch from the app worker, same trust model as /api/tools/execute.
    The client already reconnects and re-subscribes on any close, so useQuery
    consumers get fresh data automatically.
  • Add deepspace usage — credit balance, quota headroom (per-bucket breakdown with renewal/expiry dates), and per-integration spend for the last 30 days, from the platform's billing ledger. --json emits the raw summary for scripts and agents. Previously the only balance surface was the web dashboard, which agents driving deepspace invoke can't read.