Skip to content

1.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 13:27
· 23 commits to main since this release

Added

  • Vitest test infrastructure — colocated *.test.ts files, happy-dom
    environment, obsidian module aliased to a local mock so pure utilities can
    be unit-tested without an Obsidian runtime. CI (.github/workflows/lint.yml)
    now runs npm test in 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
    errorDumpFolder so 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
    (default true), errorDumpFolder (default
    85. References (Book Search)/_errors). (M0-B)
  • Migration banner state tracking — new migrationCompletedAt and
    migrationBannerDismissedAt settings persist across reloads, and a new
    one-line Notice on startup points anpigon users to the migration helper.
    The banner suppresses itself once the user hits "완료" or "나중에" in the
    MigrationModal. Pure helper shouldShowMigrationBanner is exported from
    src/migration/naver-detector.ts for 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 / Description auto-block with the provider's description
    field (Aladin subInfo, Kakao contents, Google Books description, Open
    Library first sentence). The Update book info in current note command
    refreshes the same block on demand while preserving edits made outside
    the BOOKSEARCH:AUTO-START/END markers. New setting: autoFillDescription
    (default true). (M0-D)
  • ISBN13 vault-wide duplicate detection — before creating a new book
    note, the plugin scans the vault for existing type: reference notes with
    a matching ISBN10 or ISBN13. On match, DuplicateModal offers four
    actions: open existing / update existing / create anyway (ignore dedup) /
    cancel. VaultBookIndex runs incrementally via metadataCache.on('changed')
    and vault.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's status frontmatter
    and record startedAt / finishedAt YYYY-MM-DD dates automatically on
    transition (idempotent — existing stamps are preserved). New notes get a
    configurable initial status (default wishlist). Commands are only active
    on type: reference notes tagged book. New settings:
    readingStatusEnabled (default true), initialStatus (default
    'wishlist'). Replaces the hardcoded status: inProgress on 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)) and wikilink-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's ItemLookUp.aspx with OptResult=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 Watch section at
    the note bottom. Deliberately kept OUT of the Book frontmatter schema
    via a separate PriceQuote type 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 in MigrationModal only saved the TTB Key — the intended
    migrationCompletedAt timestamp 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.