Repository navigation
Releases: reviewjs/annotate
Release list
v1.5.1 — Keep the first comment when asked for a name
Patch release. Fixes a bug where a reviewer's first comment could be lost.
- A reviewer with no saved name who clicks Comment sees the name dialog over their pending comment. Clicking in that dialog used to drop the comment: with the pin or a shape tool active, the click started a new comment instead, and with the cursor tool the click-outside handler cancelled it. Clicks inside the name dialog no longer affect the pending comment, so it is posted once the name is entered.
Validation: 900 browser checks passed across six projects (chromium, firefox, webkit, mobile-chrome, mobile-safari, tablet) after the version bump, including new tests that fail without the fix; 21 reference-server and receiver tests passed; package contents verified.
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.
v1.4.0 — Framework integration and feedback submission
Adds explicit lifecycle and framework integration APIs, ES module and CommonJS entry points with TypeScript declarations, and optional feedback submission to your own HTTP endpoint.
- Initialize and destroy the review layer cleanly, with opt-in SPA navigation and recovery after dynamic content changes.
- Render text highlights without modifying host text, preserve legacy quote anchors, and support visible text inside display: contents elements.
- Submit the current page's JSON export explicitly, with timeout/error handling and local comments preserved on failure.
- Prefill issue URLs with encoded page, count, and summary values; includes a dependency-free Node feedback receiver.
- Keep route changes and immediate feedback submission consistent, and remove test hooks from the published API.
Validation: 798 browser checks passed across six projects without retries before the version bump; release-version integration, lifecycle, highlight, receiver, and package checks passed.
Stability improvement
v1.2.0
What's new
- Added a Copy control that copies the complete, import-compatible comments JSON payload to the clipboard.
- Reused the export payload builder so Copy and Download stay schema-compatible.
- Fixed the share-enabled desktop footer so all four controls remain visible without overflow.
- Added cross-browser coverage for the clipboard payload and desktop footer containment regression.
- Synchronized the package, runtime, documentation, examples, and site version metadata at
1.2.0.
Validation
- 461 Playwright tests passed across Chromium, Firefox, WebKit, mobile, and tablet; one Firefox timing case passed on retry.
- The Firefox pin test then passed 5/5 isolated reruns.
- Pages build and npm package dry run passed.