v2.2.0
Highlights
- Adds Rote Pro billing and resource entitlements with storage accounting, cleanup safeguards, and unlimited-storage permissions.
- Adds APNs delivery, notification preferences, campaigns, and detailed reaction notifications.
- Makes imports safer and idempotent, adds server-backed user blocking, and improves HEIC and Live Photo handling.
- Makes note writes atomic, unifies OpenKey routes, and supports direct-final uploads with atomic attachment batch finalization.
- Improves AI streaming, indexing feedback, grouped citations, JWT defaults, admin notifications, deletion confirmation, and localization.
Upgrade notes
- Back up PostgreSQL before upgrading self-hosted installations.
- Apply database migrations
0019through0029before serving the new backend. - Migration
0028removes the retiredrotes.typecolumn. - Stable frontend and backend images are published as
latest,release, andv2.2.0by the release workflow.
Validation
- Local Bun lint/build passed for
webandserverfromdevelop@42413c3. - PR #343 passed the main source guard plus GitHub CI for
webandserverbefore merge.
What's Changed
- fix(ai): harden agent stream completion and failure handling by @Rabithua in #289
- fix(ai): restore final answer streaming by @Rabithua in #290
- feat: add safe idempotent data imports by @Rabithua in #291
- ui: compact import strategy options by @Rabithua in #292
- Clarify AI indexing status and actions by @Rabithua in #293
- Fix Live Photo browser covers by @Rabithua in #294
- Harden Live Photo cover fallback by @Rabithua in #295
- feat: integrate multi-source note imports by @Rabithua in #296
- Use semantic info text color by @Rabithua in #297
- Parse grouped AI citations by @Rabithua in #298
- feat: add configurable head scripts by @Rabithua in #299
- Fix HEIC attachments in web clients by @Rabithua in #300
- Enable audio for Live Photo previews by @Rabithua in #301
- docs: update user API guide by @Rabithua in #302
- Notify admins when notes become public by @Rabithua in #303
- Fix admin hook notification links and localized titles by @Rabithua in #304
- Extend JWT token lifetimes by @Rabithua in #305
- Add server-backed user blocking by @Rabithua in #306
- feat: confirm note and article deletion by @Rabithua in #307
- Restrict anonymous reaction permissions by @Rabithua in #308
- fix(server): detect and repair mislabelled HEIC uploads by @Rabithua in #309
- Ship HEIC backfill CLI in backend image by @Rabithua in #310
- Document Rote Pro subscriptions and privacy by @Rabithua in #312
- Add the production Rote Pro billing bridge by @Rabithua in #313
- Release the current production backend from main by @Rabithua in #314
- Fix import attachment safety review findings by @Rabithua in #315
- Fix billing bridge review findings by @Rabithua in #316
- Release reviewed billing and import hardening by @Rabithua in #317
- Implement official Rote Pro resource entitlements by @Rabithua in #320
- Release Rote Pro resource entitlements by @Rabithua in #321
- Fix official storage baseline reconciliation by @Rabithua in #322
- Release storage baseline reconciliation fix by @Rabithua in #323
- Fix storage maintenance retention cleanup by @Rabithua in #324
- Release storage maintenance cleanup fix by @Rabithua in #325
- Unify admin storage usage metrics by @Rabithua in #326
- Add APNs notification worker by @Rabithua in #327
- Release APNs notification backend by @Rabithua in #328
- Add detailed reaction push notifications by @Rabithua in #329
- Deploy detailed reaction push notifications by @Rabithua in #330
- Add unlimited storage capability by @Rabithua in #331
- Clean up stale profile media by @Rabithua in #333
- Make note writes atomic by @Rabithua in #334
- Split and unify OpenKey routes by @Rabithua in #335
- Fix OpenKey review regressions by @Rabithua in #336
- Treat OpenKey GET creation as a supported convenience endpoint by @Rabithua in #337
- refactor: remove note type field by @Rabithua in #338
- docs: remove retired note type references by @Rabithua in #339
- Add atomic attachment batch finalization by @Rabithua in #340
- Fix attachment upload session capability by @Rabithua in #341
- Upload attachments directly to final object keys by @Rabithua in #342
- Release v2.2.0 by @Rabithua in #343
Full Changelog: v2.1.0...v2.2.0