Skip to content

v0.6.1

Choose a tag to compare

@donalddellapietra donalddellapietra released this 16 Jul 20:42

Patch Changes

  • 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.