1.1.0
Added
- Vitest test infrastructure — colocated
*.test.tsfiles,happy-dom
environment,obsidianmodule aliased to a local mock so pure utilities can
be unit-tested without an Obsidian runtime. CI (.github/workflows/lint.yml)
now runsnpm testin addition to lint + build. (M0-A) - Auto-dumped diagnostics notes — when a provider healthcheck or the
migration helper fails, the plugin writes a redacted diagnostics note to
errorDumpFolderso users have a concrete artifact to attach to bug
reports. API keys, tokens, secrets, and passwords are automatically masked
based on the setting field name suffix. New settings:errorDumpEnabled
(defaulttrue),errorDumpFolder(default
85. References (Book Search)/_errors). (M0-B) - Migration banner state tracking — new
migrationCompletedAtand
migrationBannerDismissedAtsettings persist across reloads, and a new
one-lineNoticeon startup points anpigon users to the migration helper.
The banner suppresses itself once the user hits "완료" or "나중에" in the
MigrationModal. Pure helpershouldShowMigrationBanneris exported from
src/migration/naver-detector.tsfor direct unit testing. (M0-C) - Auto-filled Abstract / Description section — new notes created via
"Search books" and "Search books by ISBN" now populate the
## Abstract / Descriptionauto-block with the provider'sdescription
field (Aladin subInfo, Kakao contents, Google Books description, Open
Library first sentence). TheUpdate book info in current notecommand
refreshes the same block on demand while preserving edits made outside
theBOOKSEARCH:AUTO-START/ENDmarkers. New setting:autoFillDescription
(defaulttrue). (M0-D) - ISBN13 vault-wide duplicate detection — before creating a new book
note, the plugin scans the vault for existingtype: referencenotes with
a matching ISBN10 or ISBN13. On match,DuplicateModaloffers four
actions: open existing / update existing / create anyway (ignore dedup) /
cancel.VaultBookIndexruns incrementally viametadataCache.on('changed')
andvault.on('delete'/'rename')hooks. New setting:duplicateAction
(default'ask'; also supports'open','update','error'for
headless workflows). (M1-A) - Reading Log workflow — three new commands ("Mark book as
wishlist / reading / read") stamp the active note'sstatusfrontmatter
and recordstartedAt/finishedAtYYYY-MM-DD dates automatically on
transition (idempotent — existing stamps are preserved). New notes get a
configurable initial status (defaultwishlist). Commands are only active
ontype: referencenotes taggedbook. New settings:
readingStatusEnabled(defaulttrue),initialStatus(default
'wishlist'). Replaces the hardcodedstatus: inProgresson new notes. (M1-B) - Insert book citation at cursor — new editor command searches all
configured providers and emits a wikilink at the current cursor position.
When the vault already has a matching book note (by ISBN), the link
targets that note's basename; otherwise it emits an unresolved wikilink
(Obsidian's standard "click to create" flow). Two link styles are
available:wikilink([[Title]] (Author, Year)) andwikilink-alias
([[target|Author, Year — Title]]). New settings:citationStyle
(default'wikilink'),citationOnMissing(default'insert-only';
also supports'create-note'for auto-note-creation workflows). (M2) - Aladin used-book price check — opt-in "Check used-book price (Aladin)"
command extends Aladin'sItemLookUp.aspxwithOptResult=subInfo,usedList
to fetch used-book minimum prices across three channels (aladinUsed /
spaceUsed / userUsed). Results surface either as a transient Notice
(default) or appended as timestamped rows to a## Price Watchsection at
the note bottom. Deliberately kept OUT of theBookfrontmatter schema
via a separatePriceQuotetype so re-checks don't produce diff noise on
provider-derived fields. New settings:priceCheckEnabled(default
false, explicit opt-in),priceOutputMode(default'notice-only'). (M3)
Fixed
- Migration modal no longer forgets its own completion. Previously the
"완료" button inMigrationModalonly saved the TTB Key — the intended
migrationCompletedAttimestamp was documented in a comment but never
written, so the migration banner would (silently) have reappeared on every
reload once the banner logic went live. (M0-C)
Notes
Everything above is targeted for the next release as v1.1.0. M1 (ISBN vault
dedupe + Reading Log), M2 (citation insert), M3 (Aladin used-price), and M4
(distribution polish) land in follow-up releases.