Repository navigation
v1.5.0 — Review backend sync and comment lifecycle
Adds optional sync to a review backend over the annotate wire protocol, a versioned record schema, and a full comment lifecycle. Without data-api, the library behaves exactly as 1.4.0 and sends nothing over the network.
- Sync comments to a backend with
data-api+data-review-id. Writes go through a persisted per-review queue with idempotency keys, per-record ordering, conflict merge on 409, tombstones on 410, Retry-After on 429/503, backoff when offline, and ETag polling while the page is visible. - Join a review through an invite link (the token is removed from the URL) or plug in your own auth with
auth.getToken()/onUnauthorized(). - Record schema v2: one normalized shape for localStorage, exports and the wire. v1 records upgrade on read; runtime-only fields never leave the page.
- Comment lifecycle: Open, In progress, Resolved and Won't fix, assignees, per-comment history, and an "Updated" marker when the review owner changes your comment.
- New API:
setStatus(),assign(),syncState(), andannotate:sync/annotate:authwindow events. With a backend,submit()resolves once every queued change is acknowledged. - Background sync keeps open reply and edit drafts intact.
- Includes a dependency-free reference server (
examples/annotate-server.cjs) with wire-protocol conformance tests, now run in CI.
Documentation for backend mode follows in 1.5.x; the wire protocol is specified in docs/backlog/wire-protocol.md.
Validation: 876 browser checks passed across six projects (chromium, firefox, webkit, mobile-chrome, mobile-safari, tablet) before the version bump; 21 reference-server and receiver tests passed; release-version suites (126 chromium checks) and package contents verified after the bump.