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
Make silent failures visible. RecordProvider now accepts an onWriteError prop ((error: WriteError) => void, where WriteError is { kind: 'permission' | 'validation', title, detail }) — previously the friendly-error pipeline (server rejection → parseServerError → callback) was unreachable from the public API, so a denied or invalid optimistic write looked like a success with no signal anywhere. Unhandled rejections fall back to a loud console.error explaining how to wire real UI (note: this fires in production too — existing apps that never wired a handler will start logging rejected writes to the console; each unique error logs once, repeats are suppressed), and the starter template routes onWriteError to its toast system out of the box (permission → warning toast, validation → error toast). On localhost, a signed-out RecordProvider without allowAnonymous renders a visible diagnostic instead of a blank page (production still renders nothing), and passing schemas alongside roomId (where it's ignored) warns once; both diagnostics can be forced on or off via globalThis.DEEPSPACE_DEV = true | false (LAN/tunnel previews, consumer test suites). deepspace dev and deepspace deploy now run schema lint up front and print findings (e.g. a visibilityField no role enforces) in the terminal, capped at 5 with an overflow count — previously these only appeared in the worker console after a client connected.