Skip to content

v1.5.0 — Review backend sync and comment lifecycle

Choose a tag to compare

@akashgoswami akashgoswami released this 10 Oct 08:55
· 7 commits to main since this release

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(), and annotate:sync / annotate:auth window 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.