TMDB's origin_country returns ISO codes (KR), not full names, causing
a vault regression from South Korea to KR. buildRecord now prefers
production_countries[0].name, falling back to the raw origin_country
code only when absent.
TMDB also now returns vote_average at full precision (6.537), causing
mass diff noise against the vault's 1-decimal convention and spurious
rewrites on precision drift alone. tmdb_rating is now rounded to 1
decimal place.
Loki fixture updated to realistic TMDB shapes (ISO country code +
production_countries) to catch this regression going forward.
renderNote wiped any ## heading not owned by the renderer (Synopsis,
Cast, Links, My Notes) on every sync, destroying user content like
## Collection graph-link sections. extractCustomSections now pulls
non-owned sections out of the existing body before rewrite, and
renderNote re-emits them verbatim, in original order, between Links
and My Notes.
package.json author/description now match manifest.json, release
workflow plugin name and repo-automation.config.json repo ref no
longer point at the upstream project.
- SyncDeps.listNotes now returns paths only; new readNote(path) reads
content immediately before parse/diff/write per note, closing the
window where an edit made between the initial scan and a later write
got silently overwritten. resolveMissingIds updated to match.
- WatchlistController gains a syncing flag shared by syncNow and
resolveMissingIds so overlapping invocations short-circuit instead
of racing on the same vault notes.
- main.ts registers cleanup for the 30s startup catch-up setTimeout so
it doesn't fire after unload.
- syncNow takes a quiet flag (used by the scheduled catch-up path) so
zero-change scheduled syncs don't spam a Notice; manual commands are
unaffected.
quotedOrNull renders an empty notion_url as the literal string `null`.
buildRecord read that back verbatim on the next sync pass and re-quoted
it as "null", breaking diff-on-write (every re-sync of a note with no
notion_url appeared changed). Treat the `null` sentinel as empty when
reading prev frontmatter.
Pop up modal when legacy keys are found in data.json
The keys are hidden by default but the user can show them or just copy them. The old plaintext keys should be deleted for safety reasons
* Split general book search and specific editions search (when using /books/ID in searchByID)
* When searching for specific editions if there's missing metadata it'll use search.json to fill in the missing info
* ran bun check fix