Repository navigation
MeetingNotes 1.13.2 — Library startup fix and usability improvements
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.mdgrouping 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.sqlitewith 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.dmgrelease/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.