Skip to content

Commit 7f573ed

Browse files
grrowlclaude
andcommitted
chore(release): v0.3.2
Bug-fix batch from the deep-audit follow-up (audit-excluded SSR topic aside): client reconnect-wedge fix (#12), wire-input hardening + error sanitization (#15, ADR-0012), catch-up N+1 batching (#14), plus expanded error/wire test coverage (#11) and dead-code/identifier-quoting cleanup (#13). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 650b4a0 commit 7f573ed

3 files changed

Lines changed: 39 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,42 @@ While pre-1.0, the public API may change between 0.x releases.
1010

1111
_Nothing yet._
1212

13+
## [0.3.2] — 2026-06-13
14+
15+
### Added
16+
17+
- **Wire-input hardening at the server boundary (ADR-0012).** Frame-shape
18+
guards drop malformed frames — the socket survives and answers the next
19+
valid frame — and inbound limits bound frame size and per-connection
20+
subscription count. (#15)
21+
22+
### Fixed
23+
24+
- **A failed initial connect no longer wedges the client transport.** A
25+
WebSocket that never `open()`s fires no `close` event, so the auto-reconnect
26+
couldn't run and the cached rejected `connectPromise` wedged the transport
27+
permanently — every later `connect()` returned the same rejection. On a
28+
failed open the transport now clears the promise and re-arms the reconnect
29+
while subscriptions are live. (#12)
30+
31+
### Changed
32+
33+
- **Reconnect catch-up no longer issues an N+1.** Delta hydration batches
34+
keyed reads in chunks (≤64) and the per-table changelog read uses the
35+
`(tbl, seq)` composite index, so a 500-key catch-up issues ~8 queries
36+
instead of 500. Behavior is unchanged. (#14)
37+
38+
### Security
39+
40+
- **Mutation `execute` errors are sanitized.** A failed `execute` now returns a
41+
generic "mutation failed" rather than leaking SQLite/internal detail to the
42+
client; authorize errors still pass through. (#15)
43+
44+
### Internal
45+
46+
- Server error-path and wire-level test coverage expanded (#11); dead
47+
`snapshotAll` removed and CDC trigger DDL identifiers quoted (#13).
48+
1349
## [0.3.1] — 2026-06-11
1450

1551
### Fixed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tanstack-do-db-collection",
3-
"version": "0.3.1",
3+
"version": "0.3.2",
44
"description": "Sync a TanStack DB collection to a Cloudflare Durable Object over WebSockets — optimistic mutations, live queries, and single-ordered-stream write confirmation.",
55
"type": "module",
66
"license": "MIT",

0 commit comments

Comments
 (0)