Changelog
All notable changes to NoteDrop will be documented in this file.
[Unreleased]
Changed
- File-note engine (models, note types, billing-unit rounding, PDF and Markdown generators, markdown parser) extracted to the shared FileNoteKit Swift package (
../FileNoteKit), consumed as a local package dependency and also used by Certum Draft. No behaviour change; engine tests now run in the package (swift test)
[3.0.3] - 2026-07-21
Fixed
- Note panel + onboarding: square-cornered shadow band at the top corners — SwiftUI content painted past the unclipped NSGlassEffectView, and the window's shadow silhouette followed the square alpha; the glass now clips to its corner shape
- Onboarding: a stray segmented tab control and scrollbar chrome peeked past the window edges — the AppKit-backed TabView is replaced with direct page switching
Changed
- Billing unit for telephone attendances now defaults to 6 minutes instead of Off (applies only where the setting was never changed)
[3.0.2] - 2026-07-20
Fixed
- Onboarding: the welcome guide's window cast right-angle shadows that ignored its rounded corners. The window is now borderless like the note panel — NSGlassEffectView owns the window shape on macOS 26 (corner-radius layer mask as fallback), and closing via ⌘W behaves like Skip
[3.0.1] - 2026-07-20
Important
- Sparkle update key rotated again: the 3.0 release was signed with a mismatched update key and could not be installed automatically. Users on 3.0 or earlier must download 3.0.1 manually once from the website; automatic updates resume afterwards.
[3.0] - 2026-07-19
Changed
- Minimum macOS version raised to 26 (Tahoe); earlier macOS versions stay on 2.13 and won't be offered this update
- Spotlight indexing is now optional — Settings > General toggle, and disabling it purges NoteDrop's existing entries from the Spotlight index
- Sparkle system profiling disabled, matching the zero-data privacy manifest
- PDF pagination rewritten: page breaks always land on line boundaries, generation is faster on long notes, and the Duration row respects custom/blanked labels
notedrop://URLs now require a valid extension request or a folder under the granted matters folder
Fixed
- Saving: worst-case rollback can no longer delete the only copy of a note — leftover originals are recovered as "(recovered)" files
- Saving: a deleted or renamed save folder is reported as missing instead of looping through a permission re-grant
- Bookmarks: one corrupt entry no longer wipes every granted folder; security-scope access is reference-counted
- Matter detection: year folders like "2024 Invoices" no longer hijack the matter root; manual-mode subfolder promotion fixed
- Note panel: midnight preview/save date mismatch, draft autosave now covers note-type and date changes, auto-height no longer disables itself, edit-mode dirty check covers date/type
- Shortcuts: recording suspends the live hotkey; system-reserved combos (⌘Q, ⌘W, ⌘,, ⌘H, ⌘M, ⌘Space) are rejected
- Finder extension: files are no longer created inside bundles (.app, .rtfd); creation is atomic against name races
- PDFs: no more blank trailing pages or silently dropped pages; client-identifying filenames redacted from public logs
- Toasts size to their content and action toasts stay up long enough to click
- The update badge clears when the update session ends
Internal
- NoteCreationPanel and OnboardingView split into focused, testable components; AppSettings gains an injectable UserDefaults for tests
- Cross-process defaults keys consolidated into AppConstants; Finder extension entitlements now explicitly declare the sandbox
- Test suite: 234 tests / 12 suites, including new panel-logic, shortcut-validation, and shared-contract suites; tests no longer touch real user defaults or bookmarks
- Release automation hardened: version validation, deployment-target-derived appcast minimum, DMG mount-point parsing, kill confirmation, trap cleanup
[2.13] - 2026-07-12
Added
- New app icon — a note page catching a water drop, drawn properly for the macOS Dock
Improved
- The welcome guide is a third shorter — six focused pages (welcome, industry, your details, folder access, Finder extension, ready) with the explainer slides retired
- The guide's final page shows your actual keyboard shortcut and all three ways to start a note; the folder-access page explains that notes file themselves from any folder inside a matter
[2.12] - 2026-07-11
Added
- The note editor now shows your formatting as you write — bold looks bold, italic looks italic, markup characters fade into the background; the Bold and Italic buttons light up to show the style under the cursor
- Templates — give any note type boilerplate text (Settings > Note Types), and new notes of that type open pre-filled
- One-click timestamps — the clock button (or ⇧⌘T) inserts the current time at the cursor
- Find bar inside the note (⌘F) and a quiet word count above the editor; dictation moved up beside the formatting buttons
Improved
- More comfortable long-form typing — relaxed line spacing and clearer paragraph separation in the editor
- Formatting part of an already-formatted phrase now produces clean results in the saved PDF
- Saving is fully off the main thread again, so very long notes can't briefly freeze the panel, and settings are snapshotted at the moment you press Save
Fixed
- Discarding a restored draft now asks first, and starting fresh brings back your template instead of an empty note; a discarded or saved note can no longer reappear later as a phantom draft
- Editing a renamed telephone attendance no longer loses its recorded duration
- While the folder-access prompt is up, the note is protected from edits that would have been silently lost; undo can no longer garble the note after a draft restore or template change
- A typed phone number or duration now counts as unsaved work — closing the panel asks first and the draft keeps it
[2.11] - 2026-07-11
Added
- Draft protection — NoteDrop quietly saves a draft while you type; if the app quits unexpectedly or your Mac restarts, the panel restores your unsaved text the next time you open it for that folder, with a clear banner and a Discard option
- Filename preview — see the exact filename before you save, including its number for the day and the subfolder it will land in
- Recent Notes can now open the note itself — each entry offers Open Note, Reveal in Finder, and Edit Note
- Billing duration for Telephone Attendance notes — optional billing unit (6, 15 or 30 minutes) in Settings > Documents; durations round up to the next unit, show a live "bills as" hint, and print on the PDF
Improved
- After saving, the confirmation names the file and offers a Show button that reveals it in Finder
- The menu bar's New File Note shows your keyboard shortcut and, on macOS 14.4 and later, which folder the note will go to based on your current Finder window
[2.10] - 2026-07-11
Important
- This update is signed with a new Sparkle update key. If you're on 2.9 or earlier, the automatic updater will report a verification error — download this version once from the website; automatic updates resume from then on
Added
- NoteDrop now asks before discarding a note with unsaved text — pressing Escape or ⌘W can no longer silently destroy what you've typed
- The format picker in the note panel now applies to that note only, instead of quietly changing your default output format; editing a note keeps its original format
- Custom note types can be reordered with the new up/down buttons, duplicate names are prevented, and the add field focuses automatically
Fixed
- Multi-page PDFs containing emoji or accented characters no longer show corrupted characters at page breaks, and page breaks land where they should
- Notes stay findable in Spotlight — previously they silently dropped out of search results after about a month
- The "Subfolder names" field no longer swallows commas and spaces as you type
- Switching industry now asks before replacing your customised folder settings, and re-selecting your current industry no longer resets them
- The shortcut recorder no longer accepts combinations that would hijack normal typing (like Shift+letter alone), shows why a key was rejected, and unsupported keys are no longer silently recorded as "N"
- Filenames always use the standard calendar and Western digits, regardless of your macOS region settings — so notes keep sorting chronologically
Improved
- Settings polish — the Finder extension status updates live, "Last checked" refreshes after an update check, ⌘, and the menu bar now open the same settings window, and the extension button opens the right place in System Settings
- VoiceOver users can now reach the Retry and Dismiss buttons on error messages
- Welcome guide fixes — pages scroll instead of clipping, closing the window no longer brings the full guide back on every launch, and a dark-mode visual artifact is gone
- Recent folders in the folder picker show their full location on hover, so identically-named folders are distinguishable; double-click the note panel's top edge to restore automatic sizing after a manual resize
[2.9] - 2026-07-02
Improved
- The note panel's glass corners now render cleanly on macOS Tahoe and later — no more faint double edge around the top corners
- Saving happens in the background, so the panel stays responsive while a long note is written to a slow or network drive
- "Launch at login" now tells you when macOS needs your approval, with a one-click shortcut to System Settings
- Imported logos are optimised automatically, keeping settings lean no matter how large the original image is
Fixed
- When NoteDrop asks you to re-grant folder access, the note is now always filed in its original folder — selecting a parent folder in the prompt no longer misfiles the note
- Editing a note whose type you've since hidden keeps its original type instead of silently changing it
- Long firm names wrap correctly in the PDF header instead of overlapping the matter details, and very tall headers now flow the note to the next page cleanly
[2.8] - 2026-06-11
Added
- Formatting in the note editor — Bold, Italic and bullet buttons above the note field, with ⌘B and ⌘I shortcuts; lists continue automatically when you press Return; the "Aa" button shows everything available
Improved
- Recent Notes now follow your files — rename a note in Finder and it stays in the list, opens correctly, and keeps your wording when you edit it
- The update window appears in front of other windows instead of hiding behind them, without interrupting your typing
- On macOS Tahoe and later the note panel uses the system's native glass material
[2.7] - 2026-06-11
Added
- Resizable note window — drag any edge or corner to make room for longer notes; remembers your chosen size
Improved
- The menu bar dot signalling an available update is now red
- If a save fails, the note stays open with your text intact; pressing the shortcut while a note is open brings it forward instead of discarding it
- Editing a note keeps its position in the day's sequence and always saves back to the folder it lives in
- NoteDrop no longer asks for Accessibility permission — the keyboard shortcut never needed it
- Sharper PDF layout with long client or matter names, better page breaks, and emphasis inside bullet lists
Fixed
- Edits that only change capitalisation in the description now save correctly
- Folders with "&" in the name (e.g. "Smith & Co") work from the Finder right-click menu, and network drives connected after login now show the menu
[2.6] - 2026-05-08
Improved
- Editing a note is now transactional — the original file is only retired after the new file is in place, and is restored if anything goes wrong during a save
- Switching a saved Both note to PDF only on edit cleans up the orphan Markdown file automatically (and vice versa)
Fixed
- Refuses to overwrite an unrelated file at the destination path
[2.5] - 2026-05-05
Fixed
- Website download form was serving an outdated build; release tooling hardened so it can't recur
[2.4] - 2026-05-03
Improved
- Date picker UX overhaul — click the date for a calendar popover, pick the time in its own field
[2.3] - 2026-05-03
Added
- Scroll-wheel support on the date picker — scroll for ±1 minute, ⇧-scroll for hours, ⌘-scroll for days
Improved
- Date picker is now minute-precise — no more 30-minute snap
[2.2] - 2026-05-02
Added
- Date editing — opt-in setting that adds a date and time picker to the note panel for backdating or post-dating notes
Improved
- Editing a Recent Note preserves the original date instead of re-stamping it to "now"
- Filename changes during edits clean up stale Recent Notes and Spotlight entries automatically
- Spotlight indexes notes with their document date, so date-based searches respect the chosen date
Changed
- Markdown frontmatter
date:field is written in local time with a timezone offset instead of UTC
[2.1] - 2026-03-17
Added
- Recent Notes submenu in menu bar — shows last 10 notes, click to reopen and edit
- PDF logo/letterhead — choose an image in Settings > Documents, renders in PDF header
- Spotlight integration — notes indexed on save, searchable system-wide by type, matter, client
- Keyboard-only flow — Return advances through Description → Telephone → Body fields
- Release script version argument:
./scripts/release.sh 2.1
Changed
- Industry profile switching resets subfolder mode correctly
- GlassButtonStyle refactored for correct SwiftUI state management
Fixed
- Finder extension "New File Note" context menu now works reliably (missing action target)
- Path traversal protection in file save fallback chain
- Thread-safe request deduplication between Finder extension and URL scheme
- Context resolution moved off main thread to prevent UI freezes
- IPC race condition — requests no longer lost during decode
- Timer leaks in accessibility monitoring and onboarding
- Filename sanitization handles null bytes, leading dots, and length limits
- Settings encoding failures now logged instead of silently ignored
- Note panel action bar no longer overflows panel width
- DMG creation fixed for macOS Sequoia translocation protection
Removed
- Orphaned Layout constants (ElementSize, Opacity, Shadow, LineWidth, etc.)
- Deprecated UserDefaults.synchronize() calls
[2.0] - 2026-03-13 (build 14)
Added
- Accessibility permission status indicator in Shortcuts settings with "Open Settings" link
- Finder extension status indicator in General settings
- Persistent error notifications with dismiss button and optional action button
- Industry-driven display strings: folderLabel, folderLabelPlural, tagline on IndustryProfile
- Centralized
applyPreset(to:)for consistent industry preset application - Output format Picker menu replacing cycling button for better discoverability
- Cmd+W keyboard shortcut to close note creation panel
- Return key advances through onboarding pages
- Page indicator dots now meet 44pt minimum click target
Changed
- All hardcoded "Matter"/"Matters"/"court-ready" strings now driven by active industry profile
- Preview dates in settings use selected date format instead of hardcoded DateFormatter
- Settings window is now resizable and miniaturizable
- Preview boxes adapt to dark mode (removed forced light color scheme)
- Subfolder text field uses glass styling consistent with rest of app
- Error notifications stay until manually dismissed; success still auto-dismisses
- Onboarding Finder extension messaging clarified for "unknown" vs "not detected" state
Fixed
- Placeholder text contrast in dark mode — uses NSColor.placeholderTextColor
- VoiceOver hints use macOS phrasing ("Click") instead of iOS ("Tap"/"Double-tap")
- Icon buttons in Note Types settings bumped from .footnote to .callout with proper hit areas
- Reduce-motion support added to GlassButtonStyle and NotificationView animations
- Accessibility labels added to onboarding Firm Name and Your Name fields
- Removed misleading "Drag to reorder" text from custom note types
- Error toast now shown when dock Quick Note fails to resolve folder
- FolderPickerView buttons use GlassButtonStyle instead of .borderedProminent
[2.0] - 2026-02-22 (build 10)
Added
- Finder context menu "New File" submenu — quickly create Text (.txt), Markdown (.md), and RTF (.rtf) files directly from Finder
- Finder context menu toggle in Settings → General
- Configurable file types for the "New File" context menu
- Release automation script for streamlined builds
Changed
- Redesigned Settings UI with sidebar navigation and pill buttons (replaces tab-based layout)
- General, Documents, Note Types, Industry, and Shortcuts sections
- Redesigned note creation panel with liquid glass aesthetic, larger size, and fully rounded corners
- "Note Types" moved to its own settings section (previously under Document tab)
- Removed App Store target — direct distribution only (signed & notarized DMG)
- Minimum macOS version raised to 14.0 (Sonoma)
- Automatic update checking setting added to General section
- Centralized shared types between main app and Finder extension
Fixed
- Sparkle update sync — DMG now consistent across public/ and dist/
- Cross-process bugs between main app and Finder extension
- Note creation panel corners now fully rounded
- Multiple build stabilization fixes
[1.5] - 2026-01-21
Fixed
- PDF rendering issue where first lines of paragraphs were invisible (text was present but clipped due to malformed clipping rectangle in PDF output)
- Root cause: Using
CGFloat.greatestFiniteMagnitudefor text drawing rectangles caused zero-height clipping paths when combined with coordinate transforms
[1.4] - 2026-01-20
Fixed
- PDF rendering issue where text after paragraph breaks (Cmd+Enter) appeared white/invisible
- Fixed attribute inheritance for newlines in NSAttributedString to ensure consistent text rendering
[1.3] - 2026-01-18
Added
- VoiceOver accessibility support for all views (NoteCreationPanel, SettingsView, OnboardingView, NotificationView)
- Accessibility announcements for save/error notifications
- Industry Profiles feature - bundle PDF labels and folder parsing patterns together
- Legal (default), Medical, Real Estate, Accounting, Generic, and Simple profiles
- New "Industry" tab in Settings with profile picker
- Live PDF label preview showing how headers will appear
- Live folder parsing preview showing how folders will be parsed
- Dynamic PDF labels based on selected profile (e.g., "Matter No." becomes "Patient ID" for Medical)
- Pattern-aware folder parsing for different naming conventions
- Simple Mode - new profile for users who want quick notes without folder parsing
- No metadata extraction (no reference number, name, or type fields)
- PDF shows only: Date, Author, Note Type, and Content
- Works with any folder - no pattern matching required
- Perfect for freelancers, creatives, or anyone who doesn't need structured metadata
- Markdown Output - save notes as Markdown files instead of (or in addition to) PDF
- New "Output Format" setting in Settings → Document: PDF / Markdown / Both
- Markdown files include YAML frontmatter with all metadata
- "Both" saves PDF and Markdown simultaneously with same filename
- Output format toggle in note creation panel (click to cycle through formats)
- Notification message reflects output format
- Flexible folder detection - choose how project folders are identified
- Numeric Prefix: folders must start with numbers (default, backward compatible)
- Any Parseable: any folder matching the industry pattern (works with alphanumeric IDs)
- Manual Only: don't auto-detect, use selected folder directly
- Flexible save location - control where notes are saved within project folders
- Search for multiple subfolder names (comma-separated list like "Correspondence, Notes, File Notes")
- Option to save directly to project root folder (skip subfolder search)
- First-run industry selection in onboarding wizard
- Choose your industry when first launching NoteDrop
- Automatically configures profile, folder detection, and subfolder names
- Legal selected by default for backward compatibility
- Configurable note types
- Add custom note types in Settings → Document → Note Types
- Hide built-in types you don't use (click the eye icon)
- Delete custom types when no longer needed
- Hidden types don't appear in the note type picker
- Quick Note from dock icon - click dock icon to open folder picker and create a note
- Dictate button in note creation panel - one-click access to macOS system dictation
Changed
- Replaced deprecated Carbon API with HotKey library for keyboard shortcuts
- Keyboard shortcut recording in Settings now actually captures keystrokes
- Added "Reset to Default" button for keyboard shortcuts
- Extracted magic numbers to
LayoutConstantsfor maintainability (window dimensions, padding, spacing, etc.) - Note creation panel now shows output format toggle (click to cycle PDF → Markdown → Both)
- Success notification now specifies output format (e.g., "File note saved as PDF & Markdown")
- Menu bar icon changed to water drop symbol
- Note creation panel redesigned:
- Larger size (480×440) for better usability
- Removed traffic light buttons (use Cancel button instead)
- Increased corner radius for modern appearance
- Always floats on top of other windows
Fixed
- Finder extension now appears in context menu when browsing any folder (previously only worked in home directory)
- Extension now monitors root filesystem and all mounted volumes
- Note creation panel can now be dragged from the top area
- Output format toggle and buttons no longer wrap text incorrectly
- Settings toggles in Behavior section now properly aligned
[1.2] - 2026-01-15
Added
- Markdown support in note body text - use bold, italic,
inline code, lists, and numbered lists in your notes and they'll render with proper formatting in the PDF output - Multi-page PDF support - long notes now automatically flow across multiple pages instead of being cut off
Fixed
- Improved performance when typing long notes (debounced text height calculation)
- Notes longer than one page no longer get truncated
[1.1] - 2026-01-12
Added
- Quick Actions/Services menu support (right-click folder → Quick Actions → New File Note)
- Works automatically without needing to enable extensions
- Optional Dock icon (can be enabled in Settings → Behavior)
- Update badge on menu bar icon when new version is available (Sparkle gentle reminders)
- Send Feedback menu item with automatic system info (app version, macOS version)
- Telephone field for Telephone Attendance notes (included in PDF output) — thanks Melinda Ditchburn!
- Auto-resizing note panel - grows as you type (up to 700px)
Fixed
- Keyboard shortcut now works after granting accessibility permission (no restart required)
- Onboarding screen updates in real-time when accessibility permission is granted
- "Check for Updates" now actually works (Sparkle updater wasn't starting)
- Close button (red X) now works on all windows (panel, onboarding, settings, folder picker)
Changed
- App now polls for accessibility permission changes and re-registers shortcut automatically
- Improved Finder extension onboarding with clearer step-by-step instructions
- Added note that app must be in Applications folder for Finder extension to work
- Updated Finder extension instructions for macOS Tahoe (General → Login Items & Extensions)
- Onboarding now emphasizes Quick Actions as the primary right-click method
[1.0] - 2026-01-11
Added
- Initial release
- Menu bar app for creating file notes
- Global keyboard shortcut (⌃⌥⌘N)
- Finder extension for right-click "New File Note"
- Automatic matter folder detection from folder names
- Professional PDF generation with firm branding
- Daily file numbering
- Support for multiple note types (File Note, Telephone Attendance, Conference Note, etc.)
- Automatic Correspondence subfolder detection
- Sparkle auto-updates
- Onboarding guide for first-time setup