# 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 with `TypeError: can't access property "add", this.expandedFolders is undefined` when 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).