v1.2.1
Released: 2026-09-25
Changes since v1.2.0 (46a1af1..HEAD).
Fixes
- Nested-note URL no longer hangs on the loading screen (#180, fix by @rafaself in #181): opening a nested note directly (e.g.
/notes/studies/design-systems-stack.md) could crash startup withTypeError: can't access property "add", this.expandedFolders is undefinedwhen the CodeMirror outlet connected before the app controller finished initializing. Startup now guards initial load until the controller is ready. - File-lifecycle consistency under concurrent operations (#182, fix by @rafaself in #183): explorer refreshes and concurrent create/rename/move/delete operations could race. Filesystem mutations and tree reads are now serialized with a shared advisory lock in
NOTES_PATH, note creation is atomic and existence-checked (no silent overwrite), and rename/create-folder collisions raise a proper "already exists" error. On integration, hardened the lock so an unopenable lock file (read-only mount, symlinked path, ENOSPC) degrades to a local fallback lock instead of crashing reads or writes.
Notes
- Declined #184 (named Requesty AI provider), consistent with the project's vendor-neutral AI stance (#162); a generic OpenAI-compatible endpoint remains the preferred direction.
Test Coverage
- 879 Ruby tests, 1,735 JavaScript tests (2,614 total).