Skip to content

Project Notes 5.0.0

Choose a tag to compare

@kestermckinney kestermckinney released this 06 Apr 00:52

New Features

  • Added macOS installer with:
    • Signed and notarized .pkg installer built via productbuild
    • DMG wrapping for distribution
    • Embedded Python.framework bundled inside the app bundle
    • Hardened-runtime entitlements for embedded Python
  • Plugins can now be placed in the user's home folder (~/ProjectNotes/plugins/) in addition to the application plugins folder, making it easier to add custom plugins without modifying the application directory
  • Added cloud synchronization via SqliteSyncPro with support for:
    • Self-hosted PostgREST servers for complete data sovereignty
    • Supabase cloud hosting for managed database services
    • Transparent background synchronization that runs while the application operates
    • Row-level AES-256-GCM encryption for sensitive data protection
  • Database synchronization simplifies setup — no manual configuration of database files across machines needed
  • New File > Cloud Sync Settings... menu option to configure cloud connection parameters:
    • Host type selection (Self-Hosted or Supabase)
    • PostgREST server URL for self-hosted deployments
    • Email and password for authentication
    • Optional encryption passphrase for data at rest and in transit
    • Supabase anonymous key for cloud deployments
  • Automatic table discovery — only tables with required sync columns (id, updateddate, syncdate) are synchronized
  • Manual encryption key support for advanced integration scenarios
  • Database Cloud Syncing — Added SQLite sync to cloud, simplifying database setup across machines
  • Sync All — New "Sync All" menu option to synchronize all project data at once
  • Sync Status — Sync status is now displayed in the interface
  • Drag and Drop — Support for dragging and dropping file names and contact info
  • Export Tracker Items Plugin — New plugin for exporting tracker items
  • Quick Team Member Add — Added quick team member add functionality

Improvements

  • UI improvements when selecting records
  • Performance optimizations throughout the application
  • Added ability to filter out Cancelled and Deferred items by default
  • Python plugin code optimized (string and loop improvements, standard naming conventions)
  • Added defaults to plugin settings
  • Additional logging added for sync operations
  • Refactored C++ codebase for maintainability
  • Modularized database structure files
  • Updated Python plugin field names for v5.0.0 database schema
  • Updated application_version table schema and upgrade logic
  • Cross-thread row change propagation now uses Qt signals/slots
  • Removed duplicate row ID in XML export

Documentation Improvements

  • Significantly expanded View Menu documentation with detailed explanations and examples
  • Expanded History Menu documentation explaining page state persistence and history navigation
  • Added comprehensive Log Viewer documentation to Plugins Menu
  • Completely rewrote "Presenting to Clients" section with strategies for using Internal Items and Filter Tool to hide sensitive information from clients
  • Major rewrite of "Adding Functionality" documentation covering:
    • Plugin architecture (main thread vs background threads)
    • Auto-reload mechanism for rapid plugin development
    • Complete explanation of required global variables (pluginname, plugindescription, pluginmenus, plugintimerevent)
    • QSettings usage for plugin configuration storage
    • Settings dialog best practices with PyQt6 examples
    • Detailed explanation of embedded Python functions (projectnotes.update_data and projectnotes.get_data)
    • Critical warnings about delete attribute and foreign key relationship dangers
  • Added Built-In Standard Plugins overview explaining configurability and highlighting IFS plugin compatibility notes
  • Added comprehensive "Variable Replacement in Plugins" section explaining:
    • XML tree path syntax: [$tablename.columnname.rownumber]
    • Relationship between plugin configurations and XML data
    • Real-world examples for My Shortcuts, template documents, and email configuration
  • Renamed all image files with meaningful names (e.g., icon-navigate-back.png, icon-new-item.png, etc.)
  • Enhanced standard plugin settings documentation with practical configuration examples

Fixes

  • Fixed internal column not hiding in Project Notes table when "View Internal Items" is unchecked
  • Fixed formatting in Edit Menu documentation (added blank lines before numbered lists for proper markdown rendering)
  • Fixed many issues with Copy Record
  • Fixed delete check search
  • Fixed update check for delete flag
  • Fixed Search Page failing bug
  • Fixed column colors and HTML text rendering in search
  • Fixed AppSettings crash on close
  • Fixed intermittent QTableView repaint after updateDisplayData
  • Fixed Preferences dialog
  • Fixed Filter Dialog and added save for last location in additional dialogs
  • Fixed plugin items for Apple
  • Fixed exported email dates in plugins
  • Fixed menus and crash when editing meeting and email types
  • Fixed record lock issue and reloading of edited records
  • Fixed release build on Windows to find PostgreSQL drivers
  • Fixed debug build include
  • Revamped record update processing from imports
  • Removed extra database upgrade steps