Skip to content

Releases: dbbaskette/MeetingNotes

MeetingNotes 1.14.6 — Clearer recording controls

Choose a tag to compare

@dbbaskette dbbaskette released this 07 Oct 19:33
a78450b

MeetingNotes 1.14.6

2026-10-07. Patch release for clearer recording-state feedback. GitHub release
is source-only; DMG/ZIP installers are built locally, not uploaded as assets.
The experimental remote-processing beta remains separate.

Clearer Record controls

  • Record becomes “Recording active” and is disabled while the UI knows a
    capture is active. The keyboard/menu shortcut provides neutral guidance
    without opening another source picker. A capture started elsewhere closes
    an already-open picker. Rapid duplicate source clicks send only one start.
  • If another start still races with capture startup or shutdown, the UI asks
    the recorder for its state and displays clear starting, already active,
    still stopping, or test recording guidance. It no longer displays
    Error invoking remote method 'recording:start' for that expected condition.
  • The current recording is never stopped or restarted by a rejected duplicate
    request. The backend's single-capture protection remains unchanged. If state
    cannot be confirmed, the UI does not guess or claim a new recording succeeded.
  • Permission/startup failures remain actionable errors, with the transport
    wrapper removed. Detected-meeting and retry/restart controls share the same
    message handling; expected busy states are neutral, not alarming red failures.

Verification and upgrade

  • Full source unit suite: 1,209 passed, six skipped. The 16 new feedback
    tests also passed after correcting their test-table typing.
  • All eight existing isolated Electron renderer modes passed, including
    duplicate clicks, active-state/shortcut blocking, stale-picker closure,
    truthful Stop/retry, genuine error alerts and successful-start transitions.
    The final capture fixture and its feedback screenshot were checked again
    after allowing the screenshot to paint.
  • Main/preload production build, renderer/fixture types and whitespace checks
    passed. Scoped lint had zero errors and three pre-existing hook warnings.
  • Patch version/README metadata are updated to 1.14.6. Dependencies and database
    schema are unchanged; valid source-test evidence is reused for metadata-only
    release preparation. No real microphone/call or account/vault acceptance is
    claimed. Installer VM testing is intentionally omitted at the owner's request.

Requires macOS 14.2+ / Apple Silicon. Keep a complete closed-app Library backup
before replacing the installed app. This patch adds no migrations and does not
move recordings or reset permissions/settings. Building does not install the
app or interrupt an active recording.

Local installers use the existing Apple Development signing identity and are
not notarized because notarization is not configured. They are not a
notarized public-distribution build.

See the cumulative 1.14.5 changes and upgrade guidance.

Local installer build

Built from release commit a78450b23c74bb6d51e1d9b839ca7ef31fb7632b on
macOS 27.0.1 / Apple Silicon. The fresh capture helper and Python 3.13.5
processing bundle were built from this release commit; Electron is 30.5.1.
Packaged 1.14.6 metadata, approved icons, graphics fallbacks and exact current
renderer assets with the new recording-state feedback passed inspection.
Deep/strict signature verification, DMG checksum integrity and packaged
Electron/native SQLite ABI checks passed (in-memory database only).
This is not real-Library/live-recording or installer VM acceptance.

MeetingNotes-1.14.6-arm64.dmg SHA-256:
84de4b39716d419d74d3c4824ba57de3c014fdfc4cff8f2545f1c6219ba9c165.

The ZIP companion passed archive integrity checks and contains the inspected
app/version/icon/processing-bundle identity.
MeetingNotes-1.14.6-arm64-mac.zip SHA-256:
98b352ddfc65e2f44d3874a96385eb3af073ca1bb578373202947554689ec63b.

MeetingNotes 1.14.5 — Clearer identity, organized Library and trustworthy Weekly

Choose a tag to compare

@dbbaskette dbbaskette released this 07 Oct 15:19
6e1bb5e

MeetingNotes 1.14.5

2026-10-07. Cumulative update since 1.13.2: completed epics #242/#243,
reviewed contributor changes, and a high-contrast icon. The experimental
remote-processing beta is not included. GitHub release is source-only;
DMG/ZIP installers are built locally, not uploaded as release assets.

A clearer application identity

  • Bright pale rounded-square tile and bold indigo conversation/waveform mark
    replace the dark metallic notebook/pen. Dock, Finder and Library/Weekly share
    the artwork, checked at 16, 32 and 64 pixels on dark/light backgrounds.
  • Explicit 16–1024px macOS representations and a lightweight 256px renderer logo.
    npm run build:icons reproduces the exports. App/lockfile version is 1.14.5.
  • Install the new build to update the installed version/icon. Signing identity,
    permissions, settings and recordings are unchanged; the build does not reset
    the icon cache or replace the installed app.

Reliable capture and guided processing

  • Mic-only, app-only and mixed captures share a bounded aligned timeline with
    coordinated stems, gaps/resumption and finalization. All entry points share
    one start reservation; pending URL requests are validated and cancellable.
  • Truthful Stop/retry controls and explicit All system audio restart retain group
    and title intent. App-grouped sources/Refresh preserve choices without auto-start.
  • Optional titles persist before capture, survive recovery/restart and cannot
    be overwritten by generated-title races. Rename after Stop remains optional.
  • Compact Setup & health, shared Whisper model choice/download progress,
    interrupted-download protection and explicitly confirmed disposable test.
  • Prioritized processing diagnosis, bounded technical history, inline unresolved
    speakers and complete paged Needs attention. Reprocessing preserves notes/
    action history and local transcript snapshots.
  • Opt-in processing after Stop defaults off: only new usable finalized built-in
    recordings qualify, never imports, recovery, historical discovery or tests.

Organize, navigate and search

  • Inline expandable groups stay Ungrouped-first. New arrivals have explicit
    acknowledgment; inline Move confirms fixed IDs with three recent successful
    destinations. Failures retain selection for retry. Nonzero full-group badges
    reveal unprocessed, in-progress/review and failed meetings.
  • Keyboard row/checkbox actions, visible selection and retained Library/Weekly
    queries, groups, loaded pages and scroll after returning from a meeting.
    Hidden views do not own navigation keys. Query persistence requires explicit Save.
  • Shared dialogs trap Tab, preserve unsaved text/focus, restore the trigger and
    honor topmost nested/busy Escape and backdrop ownership.
  • Group Undo restores only unchanged assignments, refuses newer/ABA moves and
    respects native editor Undo. Every toast owns its original operation.
  • Client-owned search cancellation stops actual subprocess work, isolates Library
    and Cmd+K, fences stale responses and distinguishes complete/partial/limited/
    cancelled/failed results. Incomplete searches do not imply an empty Library.
  • Shared date/week, speaker, status, task ownership, source, recovery-warning and
    notes/transcript facets apply before caps. Removable chips and local named filters
    support explicit Save/rename/delete without hidden query storage.
  • Variable-height long-transcript windowing with readable width, whole-text
    Find/copy/export, distant seek/focus and correction invalidation. Playback
    respects manual scrolling in both line and grouped modes.

Trust Weekly tasks and recover safely

  • Local Monday–Sunday weeks consistently handle timezone/DST/year boundaries.
    New instants use UTC; legacy timestamps are interpreted without rewriting rows.
  • Narrative freshness hashes actual summary text, tasks and roster names.
    Concurrent normal/forced generation shares ownership; edits reject stale output.
  • Complete/edit owner or due date/Snooze 1 week directly in Weekly; Mine, Overdue
    and Due this week filters preserve provenance and You grouping. Failures roll
    back with Retry; successful edits refresh counts and narrative freshness.
  • Immediate individual-task Undo restores exact identity/metadata without
    overwriting newer user intent.
  • Private local Library backup previews size/missing files, snapshots the actual
    active/canonical databases, includes recordings/external stems and excludes model
    caches. Idle/write coordination includes automatic vault sync.
  • Locked inventory rechecks reject stale previews; checksums, complete audio
    mappings and SQLite integrity validate success. Restore only into a NEW
    destination. Incomplete copies remain marked and originals stay untouched.

Delivery and contributor fixes

  • Webhook ownership privacy/summary-only delivery, actual meeting IDs and
    retry-stable delivery UUIDs support deduplication. Delivery is at least once,
    not exactly once across restarts. Slack/Telegram text is escaped/bounded,
    redirects rejected and failures redacted. Google Tasks searches all task-list
    pages and coalesces creation.
  • Contributor updates: app-grouped audible sources, unreadable-stub recovery,
    active-provider/managed LM Studio settings, configured Whisper host/port/provider,
    local diagnostic dates, Reminders dates/Google token preservation, startup
    recovery, unresolved-only speaker gating, launcher clean exits and reliable Finder.
  • Packaging retains graphics/software fallbacks, licenses and notices.

Verification, upgrade and limitations

The epic gate passed 1,193 tests (six skipped), native synthetic audio checks,
types/build/scoped lint, benchmarks and all eight renderer fixtures. Final
renderer-only checks also passed; unchanged backend/native evidence is reused.
Icon/version checks and production build pass. Dependencies are unchanged;
previous audit findings remain—not a clean security-audit claim.

Synthetic 12,000-line transcript: 12,000 → 17 mounted rows; initial React median
approximately 143 → 10 ms; playback median approximately 15 → 4.5 ms. These are
fixture results, not production guarantees or isolated memory-saving claims.
Installer VM testing is intentionally omitted at the owner's request. Prior
1.14.0 packaged-runtime checks do not establish 1.14.5 installer acceptance.
No real microphone/call, signed-in export or paid inference acceptance is claimed.

Requires macOS 14.2+ / Apple Silicon. Migrations 21–22 add processing history,
title intent and revision guards; recordings are not relocated and historical
timestamps are not rewritten. Keep a complete closed-app pre-upgrade Library
copy. App-only downgrade does not undo schema changes/exports; restore the
matching backup for schema rollback. Backups may contain private data/secrets.

See owner checks and exact evidence,
backup/new-destination restore,
capture/device guidance, and
detailed cumulative change notes.
STT/diarization still use mixed input; independent stem processing remains
disabled pending real-device evidence.

Local installer build

Built from release commit 6e1bb5e715f989c285232f5bb96f6727acda37ba on
macOS 27.0.1 / Apple Silicon, including a freshly compiled capture helper,
bundled Python 3.13.5 processing service and Electron 30.5.1 application.
Packaged version/icon/arm64 identity and retained graphics fallbacks passed
inspection. Deep/strict signature verification, DMG checksum integrity and
packaged Electron/native SQLite ABI checks passed (in-memory database only).
No installed-app or real-Library runtime acceptance is claimed.

The installer uses the existing Apple Development signing certificate.
It is not notarized; notarization credentials/options are not configured.
Do not treat this as a notarized public-distribution installer. Installer VM
testing was omitted as requested, and no binaries were uploaded to GitHub.

MeetingNotes-1.14.5-arm64.dmg SHA-256:
c13d45a411b91b54fde205b5e1be4e3ee6658990824da26360a8d2ecb374e62c.

The ZIP companion passed archive integrity checks and contains the inspected
app/version/icon/processing-bundle identity.
MeetingNotes-1.14.5-arm64-mac.zip SHA-256:
be01c9793c844c9b6c602361c0061e07d1a240cd0915d82e16159a88f22f8953.

MeetingNotes 1.13.2 — Library startup fix and usability improvements

Choose a tag to compare

@dbbaskette dbbaskette released this 07 Oct 02:34
a728680

MeetingNotes 1.13.2

Release date: 2026-10-06

Version 1.13.2 fixes the blank window that could appear when opening a populated,
grouped Library. It also brings together the Settings, recoverable notes,
large-library, and Obsidian improvements merged since the last published release,
1.13.0. This is a source-only GitHub release: no DMG or ZIP binaries are uploaded.
The separately built local 1.13.2 installer is already available.

Fix: populated Library startup

The grouped Library could repeatedly measure its viewport and update React state
until React stopped rendering with Maximum update depth exceeded. Viewport
measurements are now coalesced per animation frame, and subpixel jitter does not
trigger unnecessary state changes. Scroll and resize handling share the same
scheduler, with pending work cancelled on cleanup.

The regression test exercises the actual Library view with 600 synthetic meetings,
three expanded groups, and 113 capture-recovery entries. It covers layout jitter,
window resizing, zoom, group collapse, and switching between organized and flat
views. This test reproduced the original crash before the fix.

Improvements since 1.13.0

  • Clearer Settings: searchable Recording, Processing, Organization,
    Integrations, Storage, and Advanced sections separate routine controls from
    technical endpoints and diagnostics.
  • Reliable saves: text fields save on blur with visible saving, saved, and
    failure/retry feedback. Per-setting writes are serialized, invalid values are
    rejected at runtime, and unsaved changes are protected. Folder settings use
    explicit Choose, Apply, and Cancel controls with restart guidance.
  • Pasted paths that work: quoted, tilde, and Terminal-escaped folder paths are
    normalized only when the resulting absolute directory exists. Existing literal
    filenames take precedence. Missing folders and invalid Obsidian vaults produce
    readable guidance instead of raw filesystem errors.
  • Recoverable notes and tasks: Notes & action-item history… compares and
    restores the latest 20 distinct saved versions per meeting. Existing content is
    preserved before edits, regeneration, re-extraction, and restore. Restoration
    includes completion status, owners, due dates, source quotes, and export markers
    while leaving audio and transcripts unchanged. Stale comparisons and active
    processing block restore; durable journals support interrupted recovery.
  • Lighter expanded groups: browse groups render viewport rows plus a buffer
    on one shared scroll surface, retaining focused rows and open-dialog owners.
    Collapse and Load more keep their existing fetch/pagination behavior; search
    snippets remain variable-height.
  • Incremental Obsidian sync: startup resumes outstanding work, and Sync
    pending / retry failed
    leaves already-synced exports alone. Recheck all
    notes
    explicitly requests a full scan. Changing transcript/action-item content
    choices requeues exports for that destination. Browse.md grouping is built in
    one pass while preserving the same links and date ordering.

See the Settings and recovery guide
and Obsidian sync guide.

Upgrade and recovery

  • Requires macOS 14.2+ on Apple Silicon.
  • If 1.13.1 opens to a blank window, use the new 1.13.2 installer. The fix does not
    require deleting or resetting your meeting library.
  • Upgrading from 1.13.0 adds migration 20, which stores local notes history.
    A library already opened with 1.13.1 needs no additional migration for 1.13.2.
    Existing recordings and group assignments are not relocated.
  • Back up the complete library, including db.sqlite with MeetingNotes closed,
    and your Obsidian vault before upgrading. A full rollback across the schema
    change requires the matching pre-upgrade library backup; downgrading only the
    app does not undo migrations or external exports.
  • Applying a different storage path does not move existing library files.
  • History is limited to 20 versions, not a task-by-task audit log. Restoring local
    tasks does not undo changes in Reminders, Google Tasks, or other export systems.
    Deleted roster owners become unassigned rather than being recreated. Unsaved
    drafts are not history versions.
  • Obsidian sync remains optional and one-way. Personal annotations and conflict
    safeguards remain in place; externally synced vaults may distribute exported
    content beyond this Mac. The remote-processing beta is not part of this release.

Verification

  • Full local CI in a disposable macOS 27.0 arm64 VM: 999 tests passed, 6 skipped.
    Main/preload production build, renderer and fixture type checks, changed-file
    lint, Browse benchmark, native dependency rebuilds, and renderer fixtures passed.
  • Grouped Library, native focus retention, selection/paging, collapse, Settings
    save/error/retry/path handling, and notes comparison/restore checks passed.
  • The DMG's actual production App/Library renderer passed the populated-Library
    fixture on this Mac and in a clean VM using synthetic data and a test-only IPC
    bridge. The packaged main/preload separately passed startup, permission-gate,
    version, Settings persistence/validation, database, and bundled-sidecar health
    checks. No user meetings, vaults, accounts, or recording workflows were used.
  • DMG integrity, signing, ZIP compressed-data integrity, and SHA-256 checks passed.
    All task-owned disposable VMs were deleted; logs were retained locally.
  • Synthetic measurements from the large-library work reduced 3,000 mounted rows
    to 14 and improved Browse generation by approximately 4x on the host while
    producing identical output. These fixture results are not production guarantees.

The local installer is signed with an Apple Development certificate; Apple
notarization is not configured. Live audio capture and live Obsidian rendering
were not exercised during this release verification.

Local installers

Build from v1.13.2 with npm run dist. Outputs:

  • release/MeetingNotes-1.13.2-arm64.dmg
  • release/MeetingNotes-1.13.2-arm64-mac.zip

Creating this GitHub release does not install, replace, or restart the app on your
Mac. GitHub provides its normal source archives; binary release assets are omitted.

Full comparison: v1.13.0 → v1.13.2

MeetingNotes 1.13.0 — Obsidian vault sync

Choose a tag to compare

@dbbaskette dbbaskette released this 02 Oct 12:47
a801017

MeetingNotes 1.13.0

Release date: 2026-10-02

Keep your meeting knowledge in Obsidian without maintaining duplicate notes. Version 1.13.0 adds optional, local, one-way vault sync with group and date views, safe update handling, and a compact Settings flow. This GitHub release is source-only; installers are built locally, not uploaded as release assets.

What's new

  • Choose your vault once: Settings → Obsidian sync → Configure… accepts an existing vault root. Preview shows the destination and completed-meeting count before Enable and sync starts the backfill. Sync defaults off.
  • One note, several views: a dedicated folder contains one stable Markdown file per meeting, an Obsidian Base with By group, By date, and Ungrouped views, a customizable landing page, and a plugin-free link index. Group moves and title changes update metadata without duplicating files. Dates use the actual meeting start, with creation time as a fallback.
  • Choose your content: action items default on; full transcripts default off; audio is never copied. Tasks are explicitly labeled as one-way copies.
  • Stay current: completed processing, edited notes, terminology corrections, speaker names, action items, and group changes feed a durable revision queue. Restart catch-up and 100-meeting batches keep the integration independent of processing success. Unchanged exports are not rewritten.
  • Keep personal annotations: MeetingNotes updates only its generated section and owned meeting properties. Personal notes and additional YAML properties survive updates. Edits to generated content pause that note instead of silently overwriting it.
  • Review conflicts: compare current and proposed versions, save a separate latest copy, or explicitly replace generated content after a backup. Stale comparisons and changed ownership block replacement.
  • Safe recovery: interrupted writes have a durable journal; renamed notes can be reconciled; missing notes, replaced/unavailable vaults, symlinks, and conflicting folders are reported. Removed source meetings retain their exports but leave active views. Custom landing/Base views are preserved; explicit view repair backs them up.
  • Compact controls: Settings shows a status card. Configuration and a bounded issue list live in a scrollable dialog, with retry, open-folder, disable, and repair controls.

Getting started and privacy

See the Obsidian sync guide. Enable Obsidian's built-in Bases plugin for the interactive views; Browse.md works without it. The integration does not install plugins or change vault configuration.

Sync runs while MeetingNotes is open and is not bidirectional. A vault configured with Obsidian Sync, iCloud, Dropbox, Git, or another service may distribute exported meeting content outside this Mac. Choose the vault and content options accordingly. The local database journal also contains exported text; protect library backups.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon.
  • Migration 19 is additive: it adds sync ownership, source revisions, per-destination manifests, and write journals. Existing audio, summaries, dictionary data, and group assignments are not relocated or replaced.
  • Back up the complete library, including db.sqlite with MeetingNotes closed, and your vault before upgrading.
  • Disable sync to stop writes; existing exports remain. Changing destinations also leaves the old folder intact.
  • For a full rollback to 1.12.8, quit the app and restore the pre-upgrade library backup with the older app. Keep the current library/vault copies for recovery. Downgrading the binary alone does not undo migration 19 or exported files.

Verification and known limits

  • Full test suite: 982 passed, 6 skipped across 125 passing and 2 skipped files, including 24 new sync tests. Production build, main/preload/renderer type checks, changed-file lint, and whitespace checks passed.
  • A disposable 500-meeting fixture exported in about 3.2 seconds; an unchanged pass took 0.7 ms with no writes. These local synthetic timings are not performance guarantees.
  • The isolated Electron UI fixture passed first-sync confirmation, reconfiguration, 100 issue rows, conflict and repair confirmations, disable, focus restoration, and narrow-window layout.
  • Bases syntax/YAML was checked against official documentation and automated fixtures. Live Obsidian rendering remains a manual compatibility check: Obsidian 1.13.7 was available, but the UI selector could not safely target its temporary instance independently of the user's existing window. No user vault was modified. Group collapse behavior is not claimed to match MeetingNotes; Bases uses alphabetical groups, while the fallback index puts Ungrouped first.
  • Notes are limited to 12 MB; rename reconciliation is limited to 5,000 files in the owned Notes folder. Concurrent external edits are checked before writes, but the integration is not a cross-application lock. Keep vault backups/version history and avoid editing generated sections during sync.
  • The dependency audit still reports a pre-existing production advisory in undici; this release does not change that dependency. The added YAML dependency had no reported advisory at verification time.

Local installers

Build from v1.13.0 with npm run dist. Outputs:

  • release/MeetingNotes-1.13.0-arm64.dmg
  • release/MeetingNotes-1.13.0-arm64-mac.zip

The local build uses an Apple Development certificate. Apple notarization is not configured. Building these packages does not replace or restart the installed app.

Full comparison: v1.12.8 → v1.13.0

MeetingNotes 1.12.8

Choose a tag to compare

@dbbaskette dbbaskette released this 30 Sep 20:56
8c6c84c

MeetingNotes 1.12.8

Release date: 2026-09-30

Dictionary management now has its own space. Settings stays compact whether you have a handful of corrections or hundreds. This GitHub release is source-only; Apple Silicon installers are built locally and are not attached to GitHub.

What's improved

  • Compact Settings: Dictionary shows the number of saved corrections, a Manage dictionary… button, and the existing learning-offers toggle. The full rule list no longer occupies the Settings page.
  • Dedicated manager: A bounded dialog contains the scrollable correction list. Search, group filtering, and Add correction remain above the list, so long dictionaries do not push those controls out of reach.
  • Search and scope: Search both original and replacement text, ignoring case and surrounding spaces. Show all scopes, only library-wide rules, or a specific group. Empty results explain how to broaden the search.
  • Focused editing: Add, Edit, Enable/Disable, and Delete stay in the manager. Adding while filtering a group defaults the new rule to that group. Search and group choices survive edits.
  • Safer keyboard navigation: The native modal keeps focus inside the manager and restores it to Manage dictionary when closed. Escape supports closing/backing out, unfinished edits require confirmation before discarding, and deletion confirmation stays inside the dialog.

What stays the same

Correction storage, group/library rule behavior, Suggest defaults, opt-in Automatic replacement, history, Undo, recording, and processing are unchanged. The existing learning-offers toggle is still directly accessible in Settings.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon.
  • No database migration or audio/file relocation is introduced in 1.12.8. Upgrading from 1.12.7 retains the existing dictionary and correction history.
  • Back up the library before upgrading. Users upgrading from 1.12.6 or earlier also receive the terminology migration introduced in 1.12.7; review that release's backup and rollback guidance.
  • Returning to 1.12.7 restores the inline Settings editor without reversing saved rules. Older code does not reverse migrations or artifact corrections.

Verification

  • Full Vitest suite passed with four workers: 958 passed, 6 skipped, across 124 passing and 2 skipped files. The initial unrestricted run hit one existing file-watcher timeout; its 10-test suite passed independently and the complete reduced-concurrency run passed without source changes.
  • Production TypeScript/Vite build, renderer type checking, targeted lint, and whitespace checks passed.
  • A disposable browser preview with 500 saved rules verified compact Settings, bounded dialog layout, search, group filtering/empty results, Add/Edit/Disable/Delete, unfinished-edit protection, updated counts, and focus restoration. No production library or live recording was used.

Local installers

Build from tag v1.12.8 using the documented setup and npm run dist. Expected outputs:

  • release/MeetingNotes-1.12.8-arm64.dmg
  • release/MeetingNotes-1.12.8-arm64-mac.zip

The local build uses an Apple Development certificate. Apple notarization is not configured, so these packages are not claimed as notarized. The installed app is not automatically replaced by building an installer.

Full comparison: v1.12.7 → v1.12.8

MeetingNotes 1.12.7

Choose a tag to compare

@dbbaskette dbbaskette released this 30 Sep 20:18
dddc96c

MeetingNotes 1.12.7

Release date: 2026-09-30

MeetingNotes can now remember corrections to recurring terminology, such as Salsa → SLSA, and reuse them in transcripts and meeting notes. Corrections remain local and under your control. This GitHub release is source-only; the Apple Silicon installer is built locally, not attached to GitHub.

Highlights

Remember a correction once

  • After saving a short word or phrase correction in notes, an inline Remember correction offer lets you save it without interrupting editing. Large rewrites are not treated as dictionary entries.
  • Save a rule for the current group or the entire library. Group scope helps keep technical terminology from affecting unrelated meetings.
  • Suggest is the default. Automatic replacement requires explicitly enabling it. You can skip an offer or turn learning offers off in Settings.

Review and correct transcripts and notes

  • Correct term… previews matching occurrences before applying a change. Select the occurrences you want, apply or dismiss suggestions, and inspect correction history.
  • Supported corrections can be undone. Revision and context checks reject stale previews and ambiguous undo attempts instead of overwriting newer edits.
  • Transcript corrections survive speaker-naming remerges. Raw transcription, speaker identities, timestamps, and audio remain unchanged.
  • Correcting a transcript marks existing notes as stale. Regeneration is explicit and warns that it replaces notes and action items; correcting terminology does not silently regenerate them.

A manageable local dictionary

  • Settings includes searchable terminology rules with Add, Edit, Disable, and Delete controls.
  • Rules support group/library scope, case sensitivity, and Suggest/Automatic modes. Validation rejects conflicting rules and replacement cycles.
  • Automatic rules apply during transcript merging and summary generation. A bounded glossary also guides summary generation; automatic matching is deterministic and does not rely solely on the model following that guidance.
  • Matching targets prose and protects supported Markdown code, links, and transcript labels. Rule changes do not retroactively rewrite all existing meetings.
  • Recoverable artifact writes and revision checks protect correction state across interrupted writes and detect external changes before overwriting files.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon. Back up the complete meeting library before upgrading, including its SQLite database and meeting artifacts.
  • Database migration 18 adds terminology rules, preferences, and per-document correction state. These live in the existing local library database; no new cloud service or model request is introduced.
  • Existing meetings are not bulk-rewritten on upgrade. Audio capture and speech-to-text prompting are unchanged.
  • Retain the previous installer and pre-upgrade backup. Installing older code does not reverse migration 18 or undo corrected artifacts. For a full rollback, restore the matching pre-upgrade library backup while the app is closed. Older versions do not manage the new correction history.

Verification

  • Full Vitest suite passed: 953 tests, with 6 skipped (123 files passed, 2 skipped).
  • Subsequent Markdown/Unicode boundary refinements passed the 39-test affected matcher/service/merge/summary set. A final repeated-passage Undo regression passed in the 13-test terminology service suite. Unchanged full-suite evidence was reused.
  • Production build, renderer type checking, and targeted lint passed. The SQLite native module was restored and verified for Electron after Node-based tests.
  • A disposable browser fixture exercised remembering Salsa → SLSA for a group, suggestion selection/application, history, switching to Automatic, and Undo using the real UI components.
  • No live recording, production-library mutation, or live-model accuracy trial was performed. Model glossary adherence is not guaranteed. Existing user meetings and running captures were not interrupted.

Build locally

git clone https://github.com/dbbaskette/MeetingNotes.git
cd MeetingNotes
git checkout v1.12.7
npm install
npm run dist

Expected outputs: release/MeetingNotes-1.12.7-arm64.dmg and release/MeetingNotes-1.12.7-arm64-mac.zip. GitHub does not carry these binaries.

Known limitations

  • The local app uses an Apple Development certificate. Apple notarization is not configured; the installer is not claimed as notarized.
  • Learning is intentionally limited to short substitutions. Large edits can be corrected through Correct term… or Settings instead. Large previews and matching work are bounded.
  • Undo can be refused when intervening edits make an occurrence ambiguous. Disabling or deleting a rule does not revert previously applied corrections.
  • Terminology is not a general transcript editor and does not change the speech-to-text model's vocabulary. Protected Markdown handling is conservative rather than a full document round-trip editor.
  • The experimental remote-processing beta remains separate. The production renderer still lacks a Content Security Policy.

Full comparison: v1.12.6 → v1.12.7

MeetingNotes 1.12.6

Choose a tag to compare

@dbbaskette dbbaskette released this 25 Sep 21:12
fa38d3f

MeetingNotes 1.12.6

Release date: 2026-09-25

This update makes new, ungrouped meetings easier to spot and group moves harder to make by accident. It includes the group-move improvements that were previously available only in a local 1.12.5 installer. There was no 1.12.5 GitHub release. The 1.12.6 GitHub release is source-only; the Apple Silicon installer is built locally and is not attached to GitHub.

Highlights

Ungrouped first

  • The organized Library now puts Ungrouped at the top, ahead of alphabetically sorted named groups. New recordings that have not been assigned to a group are immediately visible there.
  • Grouped search results use the same order. Ungrouped still starts expanded on first use, and existing expand/collapse choices remain intact.
  • The flat All meetings view, group assignments, and ordering of meetings within each section are unchanged.

Safer moves between groups

  • Moving an existing meeting now shows its title and current group, requires choosing a destination, and waits for an explicit Move to … confirmation. Bulk moves show a preview and warn when the selection includes meetings outside the visible list.
  • Searching for a destination clears the previous choice; a single meeting cannot be moved to its current group. Errors and the selected destination are shown in the dialog.
  • Completed bulk moves clear from selection. Meetings that could not be moved stay selected for retry, with the outcome shown in the toast. Successful moves retain Undo.
  • Create and move remains a clearly labeled single action after entering a new group name.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon. Back up the meeting library before upgrading and retain your earlier installer if you may need to roll back.
  • No database migration, audio-file move, capture change, processing change, or remote service is introduced. Groups remain organizational metadata; deleting or moving a group assignment does not alter audio or notes.
  • Rolling back to 1.12.4 restores its earlier group-move interaction and Ungrouped-last presentation without changing group assignments. Local expansion preferences remain compatible.

Verification

  • Production TypeScript/Vite build and targeted ESLint for the changed ordering code passed. The full Vitest suite passed: 121 files and 934 tests, with 2 opt-in files and 6 tests skipped.
  • The test suite required rebuilding better-sqlite3 for Node after an installer build; the Electron ABI was restored and verified afterward. This was an environment adjustment, not a product-code fix.
  • The new ordering test verifies Ungrouped first with named groups alphabetic. Existing tests cover grouped search bucketing and persisted expansion preferences.
  • A live recording and full visual smoke test against the user's meeting library were not performed; no active capture or processing workflow was interrupted.

Build locally

git clone https://github.com/dbbaskette/MeetingNotes.git
cd MeetingNotes
git checkout v1.12.6
npm install
npm run dist

Expected outputs: release/MeetingNotes-1.12.6-arm64.dmg and release/MeetingNotes-1.12.6-arm64-mac.zip. Verify the local artifact's version, signature, and checksum before distributing it. GitHub does not carry these binaries.

Known limitations

  • The local app uses an Apple Development certificate. Apple notarization is not configured, so the installer is not claimed as notarized.
  • A meeting can belong to only one group. Groups do not have nesting, manual pinning/reordering, or drag-and-drop assignment.
  • Expanding a group loads its first page; deeper meetings require Load more. The production renderer still lacks a Content Security Policy.

Full comparison: v1.12.4 → v1.12.6

MeetingNotes 1.12.4

Choose a tag to compare

@dbbaskette dbbaskette released this 25 Sep 19:10
bc98b81

MeetingNotes 1.12.4

Release date: 2026-09-25

This stable update makes the groups introduced in 1.12.3 part of the Library list itself. The GitHub release is source-only; the Apple Silicon DMG and ZIP are built locally and are not attached to GitHub. The separate remote-processing beta is not included.

Highlights

See groups and meetings together

  • The Library defaults to Organized: named groups appear alphabetically as expandable sections, followed by Ungrouped. Each meeting appears only inside its assigned section, not again in a separate all-meetings section.
  • Expand or collapse groups independently. The choice persists on this Mac; Ungrouped starts expanded on first use. Empty groups remain visible so they can be populated later.
  • View on a group focuses the existing paged group list; All groups returns to the organized list. All meetings restores the flat, sortable library when a cross-group scan is more useful.
  • Create groups from + New group, and rename or delete named groups from their section menus. The existing row, detail, and bulk Move to group… actions remain available. Deleting a group unassigns its meetings without deleting audio or notes.

Keep large libraries usable

  • Collapsed sections do not fetch meeting rows. Each expanded section loads a bounded first page and has its own Load more control. Focused-group and flat views retain the existing virtualized list.
  • Status filters work across sections. Inline search groups matches under their assigned group, shows each result once, and temporarily opens matching sections; clearing search restores the saved expansion state. Quick search (⌘K), Needs Attention, and Weekly remain cross-group.
  • Select all loaded uses the meetings loaded in expanded sections; Select all matching resolves the full filtered set, including collapsed sections. Existing fixed-snapshot bulk-selection semantics are unchanged.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon. Back up the meeting library before upgrading and keep the 1.12.3 installer if you may roll back.
  • No new database migration, audio-file move, capture change, processing change, or remote service is introduced. The group metadata created by 1.12.3 remains compatible. This release replaces the previous group-selector presentation with inline sections.
  • Expansion and Organized/All meetings choices are local UI preferences. Existing meetings stay assigned to the same single group (or Ungrouped). Rolling back to 1.12.3 restores its selector-style Library without changing those assignments.

Verification

  • Production TypeScript/Vite build passed. Full Vitest suite: 120 files and 930 tests passed; 2 opt-in files and 6 tests skipped.
  • Sidecar tests: 9 passed. The Python processing bundle is unchanged by this UI update.
  • The opt-in 1,000/10,000-meeting pagination benchmark passed. On the 10,000-meeting synthetic fixture, a group-scoped page query measured 0.118 ms median and the scoped count query 0.523 ms median on the local machine. These are query measurements, not end-to-end UI latency promises.
  • New section-ordering, exactly-once search grouping, and expansion-preference tests passed. New source files passed targeted ESLint; repository-wide lint still contains pre-existing errors.
  • npm run dist built the Apple Silicon DMG and ZIP. The ZIP passed its archive integrity test; a read-only mounted DMG reports app version 1.12.4, contains the audio-tap helper and Python sidecar, and passes strict deep macOS code-signature verification with normal keychain access. SHA-256 checksums for this local build are reported with the release handoff.
  • A live recording and full visual smoke test against the user's meeting library were not performed; no active capture or processing workflow was interrupted.

Build locally

git clone https://github.com/dbbaskette/MeetingNotes.git
cd MeetingNotes
git checkout v1.12.4
npm install
npm run dist

Expected outputs: release/MeetingNotes-1.12.4-arm64.dmg and release/MeetingNotes-1.12.4-arm64-mac.zip. Verify the local artifact's version, signature, and checksum before distributing it. GitHub does not carry these binaries.

Known limitations

  • The local app uses an Apple Development certificate. Apple notarization is not configured, so the installer is not claimed as notarized.
  • A meeting can belong to only one group. Groups do not yet have nesting, manual pinning/reordering, or drag-and-drop assignment.
  • Expanding a group loads its first page; deeper meetings require Load more. The production renderer still lacks a Content Security Policy.

Full comparison: v1.12.3 → v1.12.4

MeetingNotes 1.12.3

Choose a tag to compare

@dbbaskette dbbaskette released this 25 Sep 17:42
a12b1b4

MeetingNotes 1.12.3

Release date: 2026-09-25

This stable release adds optional meeting groups to the local Mac app. The GitHub release is source-only; the Apple Silicon DMG and ZIP are built locally and are not attached to GitHub. The separate remote-processing beta is not included.

Highlights

Organize meetings without moving files

  • Use the compact selector in the Library to browse All meetings, one named group, or Ungrouped. Status filters, sorting, counts, pagination, and inline search follow that scope. Needs Attention, the processing queue, Weekly, and ⌘K quick search remain global; quick-search results show their group for context.
  • Create groups from the selector or while moving a meeting. Rename or delete the selected group from its options menu. Group names are unique regardless of case and ignore leading, trailing, and repeated whitespace.
  • Move one meeting from its row or detail view, or move a bulk selection. The move confirmation reports partial failures and offers Undo for successful changes. Deleting a group unassigns its meetings; it never deletes recordings, notes, or exports.
  • Each meeting can belong to one group. Existing meetings and imports remain ungrouped until moved. Group membership is SQLite metadata; meeting folders and audio paths do not change.

File new recordings as you capture them

The source picker and meeting-detected banner offer an optional Save to group choice. Recording still starts with one source click. Starting from a named Library group preselects it; otherwise capture defaults to Ungrouped. The choice survives recorder restart and recovery, and a deleted group falls back to Ungrouped. The capture session records this intent before the helper starts so a fast filesystem watcher cannot catalog the meeting first.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon. Back up the meeting library before upgrading and keep the previous installer if you may roll back.
  • Database migration 17 adds the groups table and optional meeting/recording-session references. Existing rows are unchanged and ungrouped. The migration does not move or rewrite audio. Do not manually reverse the schema or delete the library to roll back; restore a pre-upgrade library backup if an older version cannot open it.
  • Local Whisper, pyannote, LLM, export, and Cloud Foundry settings are unchanged. No network service is introduced.

Verification

  • Production TypeScript/Vite build passed. Full Vitest suite: 119 files and 927 tests passed; 2 opt-in files and 6 tests skipped.
  • Sidecar tests: 9 passed. npm audit --omit=dev --audit-level=high reported 0 vulnerabilities.
  • The opt-in Library benchmark passed at 1,000 and 10,000 meetings. At 10,000 meetings, median group-scoped page/count queries were 0.137/0.604 ms versus 0.145/0.858 ms unscoped on the local fixture; these are synthetic query measurements, not UI latency promises.
  • New group storage, IPC, scoped search, cursor, catalog/recovery, capture-intent, and bulk-assignment paths have automated coverage. The new source files pass targeted ESLint. Repository-wide lint still has unrelated pre-existing errors.
  • A live recording and full visual smoke test against the user's library were not performed during feature development; the package build and artifact inspection are separate release checks.

Build locally

git clone https://github.com/dbbaskette/MeetingNotes.git
cd MeetingNotes
git checkout v1.12.3
npm install
npm run dist

Expected outputs: release/MeetingNotes-1.12.3-arm64.dmg and release/MeetingNotes-1.12.3-arm64-mac.zip. Verify the local artifact's version, signature, and checksum before distributing it. GitHub does not carry these binaries.

Known limitations

  • The local app uses an Apple Development certificate. Apple notarization is not configured, so the installer is not claimed as notarized.
  • A meeting can belong to only one group. Groups do not have nested folders, shared membership, or automatic classification.
  • The production renderer still lacks a Content Security Policy. No remote-processing capability is included in this stable release.

Full comparison: v1.12.2 → v1.12.3

MeetingNotes 1.12.2

Choose a tag to compare

@dbbaskette dbbaskette released this 22 Sep 19:56
f923cc2

MeetingNotes 1.12.2

Release date: 2026-09-22

This is a source-only GitHub release. The Apple Silicon DMG and ZIP are built locally and are not attached to GitHub. The experimental remote-processing beta remains separate; recording and processing in 1.12.2 stay on the Mac.

Highlights

Export notes to PDF

The meeting Export panel now offers PDF alongside Markdown. Select all, some, or no action items; selecting none produces notes only. PDF rendering runs locally in an isolated Electron window and writes to the location chosen in the Save dialog. The export does not upload meeting content.

One accurate action-item list

Generated summaries can already contain an Action Items section. PDF, Markdown, and Google Doc exports now remove that generated section before adding the selected action items from the meeting database. This avoids duplicate or stale tasks. A notes-only Markdown export omits the Action Items heading entirely. Google Doc export still sends the selected content to Google when explicitly chosen.

Clearer export feedback

  • Open and completed action items are grouped in the picker; completed items start unselected. Personal task destinations show only open items assigned to you.
  • Notes-only PDF and Markdown saves confirm the destination path.
  • A failed Google connection check shows its error and a Retry control instead of silently disabling the buttons.
  • The export picker cancels its delayed close when unmounted, so an old timer cannot close a newly opened picker.

Faster navigation and less status polling

Detail, Weekly, Settings, and Onboarding views load when opened rather than in the initial renderer bundle. The main production JavaScript chunk went from approximately 524 kB to 240 kB uncompressed; first-navigation latency has not been benchmarked. Meeting detail refreshes on persisted pipeline stage/status events, with a 15-second fallback poll for missed events instead of a two-second loop. The Weekly narrative timer now updates once per second.

Smaller code boundaries

Transcript, action-item, speaker, and export panels are separate modules. Export, Weekly, and Settings/Onboarding IPC handlers have separate registration modules while retaining the existing shared entry point. Weekly IPC payload types and exporter selection metadata are shared across main and renderer, reducing contract drift.

Upgrade and rollback

  • Requires macOS 14.2+ on Apple Silicon.
  • No database migration is required. Existing recordings, meetings, settings, speakers, and action items remain in place.
  • Back up the meeting library before upgrading. Keep the prior installer if you may roll back; do not delete the library or source recordings.
  • Local Whisper, pyannote, and LLM setup is unchanged. Google and webhook exports remain optional network integrations.

Verification before publication

  • Production TypeScript/Vite build passed. The main renderer chunk is 240.01 kB uncompressed (75.42 kB gzip).
  • The full serial Vitest suite passed: 117 test files passed, 2 opt-in files skipped; 914 tests passed, 5 skipped.
  • Sidecar tests passed: 9 tests. npm audit --omit=dev --audit-level=high reported 0 vulnerabilities.
  • Targeted ESLint checks passed for changed source files; repository-wide lint still has previously recorded unrelated errors.
  • The watcher test timed out in parallel full-suite runs but passed alone and in the serial suite. This is a test-timing limitation, not a demonstrated product regression.
  • Live recording, Google provider, and end-to-end PDF UI smoke tests were not repeated for this publication.

Build locally

git clone https://github.com/dbbaskette/MeetingNotes.git
cd MeetingNotes
git checkout v1.12.2
npm install
npm run dist

The expected outputs are release/MeetingNotes-1.12.2-arm64.dmg and release/MeetingNotes-1.12.2-arm64-mac.zip. Their identity, checksums, and signature should be verified after the local build; no binary checksum is claimed by this source release.

Known limitations

  • The local app uses an Apple Development certificate. Apple notarization is not configured, so the installer is not claimed as notarized.
  • The production renderer still lacks a Content Security Policy. Runtime/toolchain upgrades and CSP hardening need separate compatibility verification.
  • Production-only dependency audit does not cover Electron or every bundled build tool.
  • No Cloud Foundry service or remote-processing capability is included in this stable release.

Full comparison: v1.12.1 → v1.12.2