Fixes
- Collaborators can now archive, tag, and remove a shared note for themselves without needing edit access. Viewers can also pin a note and set a reminder on it.
- A note without a title no longer shows "Untitled" as a placeholder.
- Reminders are no longer lost when a sync conflict, a rejected push, or a newer local edit gets in the way.
- Sync now merges edits field by field instead of re-sending the whole note.
- If the session's refresh token is rejected, the app now shows a "Session expired" banner and recovers instead of getting stuck.
- The web app now shows the server's actual error message instead of a generic one when something goes wrong.
💬 Questions, bugs, or feature ideas? Join us on Discord.
Bug Fixes
- fix: stop reminders being lost between devices by @ZhFahim
- fix: recover sync when a token refresh reply is lost by @ZhFahim
- fix: save titles as typed and skip saving unchanged notes by @ZhFahim
- fix: let collaborators archive, tag and remove shared notes for themselves by @ZhFahim
- fix(web): read api error messages from error.data by @ZhFahim
- fix: merge sync conflicts per field instead of re-sending the whole note by @ZhFahim
Documentation
- docs: backup section by @AlxndrJhn
- docs: fix the backup file name in the README by @ZhFahim
Maintenance
- test(server): set up end-to-end tests against a real Postgres by @ZhFahim
- test(server): add end-to-end tests for notes, sharing and sync by @ZhFahim
- test(server): switch tests from Jest to Vitest by @ZhFahim
- chore: bump version to 0.17.2 by @ZhFahim
Other
- ci: run server end-to-end tests by @ZhFahim
- Merge pull request #191 from ZhFahim/test/server-e2e by @ZhFahim
Full Changelog: v0.17.1...v0.17.2