Skip to content

feat: implement option to exclude notes without transcription#5

Open
edabe wants to merge 3 commits into
leonardsellem:mainfrom
edabe:feature/exclude-empty-notes
Open

feat: implement option to exclude notes without transcription#5
edabe wants to merge 3 commits into
leonardsellem:mainfrom
edabe:feature/exclude-empty-notes

Conversation

@edabe

@edabe edabe commented May 5, 2026

Copy link
Copy Markdown

PR Summary: Add option to exclude notes without transcription

Overview

Adds a new user setting to skip syncing Plaud recordings that haven't been transcribed yet, preventing empty notes from cluttering the vault.

Changes

New Feature:

  • Added "Exclude notes without transcription" toggle setting (default: off)
  • When enabled, recordings without transcripts are skipped during sync and counted in the "skipped" metric
  • Sync checkpoint is still updated for skipped notes to avoid reprocessing

Files Modified

  1. src/plaud-normalizer.ts

    • Added hasTranscript() helper function
  2. src/settings-schema.ts

    • Added excludeWithoutTranscript: boolean to settings interface
    • Updated normalizeSettings() to handle new field
    • Set default value to false
  3. src/settings.ts

    • Added UI toggle for "Exclude notes without transcription" setting
  4. src/plaud-sync.ts

    • Added excludeWithoutTranscript to PlaudSyncSettings interface
    • Updated sync logic to check transcript presence and skip accordingly
  5. src/main.ts

    • Pass new setting to sync function

Testing

  • Build completes successfully with no TypeScript errors
  • Backward compatible: existing installations default to false (current behavior)

@leonardsellem

Copy link
Copy Markdown
Owner

Thanks for the clear implementation and PR summary. The feature shape looks good; I think this just needs a small readiness pass before merge:

  • Update test/settings-schema.test.mjs so the default settings test includes excludeWithoutTranscript and asserts the default is false. The current test suite fails on that stale assertion.
  • Add a focused runPlaudSync regression test for excludeWithoutTranscript: true: an empty transcript should skip note creation, increment skipped, and assert the intended checkpoint behavior.
  • Please make the checkpoint tradeoff explicit in code/docs/tests. Because skipped transcriptless recordings advance lastSyncAtMs, they will not be retried later if the user disables the setting or the transcript appears after the checkpoint. If that is intentional, documenting and testing it is enough; if not, the skip path should avoid checkpointing those recordings or track them separately.
  • Clean up the small polish items from review: remove the trailing whitespace in src/plaud-sync.ts, and either use or remove the exported hasTranscript() helper.

After those are addressed and npm test passes, this should be ready to merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants