8ffba8f7ee79b9fab137e70b21c61420c132f307
Two fixes:
1. Untitled folder junk + phantom-rename bug (Ryan reported 2026-09-22):
Obsidian's 'New folder' action does mkdir Untitled immediately, then
creates the real-named folder afterward -- either as a genuine OS
rename() or as a second separate mkdir + move-in, depending on
Obsidian's internal path (confirmed both happen). Previously we
mirrored 'Untitled' to /data like any other folder, so:
- the two-separate-creates case left a permanent 'Untitled' orphan
in /data (its delete event was silently dropped -- handle_vault_deleted
only tracks ID-shaped names) and fired two separate 'new folder'
ntfy pings instead of the one rename ping the user expected.
- the real-rename case (once Untitled stopped being mirrored) then
had no data_src to rename, so the folder never reached /data at all.
Fix: UNTITLED_RE skips mirroring 'Untitled'/'Untitled N' outright in
handle_vault_created. handle_vault_moved falls back to a create-mirror
at the destination when there's no data_src to rename, covering the
genuine-rename-from-Untitled case cleanly.
2. Stub /vault notes for /data-first folders (Ryan: 'I don't want needs
review and a fix-me message, it just needs to create the empty folder
note and give it the automatic alias'): handle_data_created now writes
just , matching the
existing convention across the vault (e.g. R.32.22 Alcohol.md). Dropped
the needs-review banner and the #fix-me inbox flagging entirely, along
with the now-dead _find_nearest_inbox_note/INBOX_ID_RE.
Verified both Untitled scenarios live: real OS rename from Untitled now
mirrors as a single create at the destination name; two-separate-creates
(Untitled then real name, Untitled later deleted) leaves no orphan in
/data and produces exactly one ntfy for the real folder.
Description
vault CLI + Librarian tooling for Ryans R/J/F/I Obsidian vault
262 KiB
Languages
Python
96.4%
Nix
2.3%
Shell
1.3%