You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.