                           ━━━━━━━━━━━━━━━━━
                            ORG GNOSIS NEWS
                           ━━━━━━━━━━━━━━━━━


                         2026/02/23 2026/02/22


This document contains the release notes that are included in each
tagged commit on the project's main git repository:
<https://git.thanosapollo.org/org-gnosis>.


0.2.1
═════

Critical Fixes
──────────────

Database Sync
╌╌╌╌╌╌╌╌╌╌╌╌╌

  ⁃ Fixed `org-gnosis--delete-file' querying with full paths instead of
    basenames, causing incremental sync to silently fail.
  ⁃ Fixed `org-gnosis-update-file' to accept full paths and correctly
    detect journal files.
  ⁃ Fixed force sync not recreating indexes after dropping tables.
  ⁃ Removed redundant table rebuild in `org-gnosis-db-sync'.


Emacs 29+ Compatibility
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  ⁃ Fixed `wrong-type-argument processp' error on Emacs 29+ by
    pre-loading `emacsql-sqlite-builtin' to ensure cl-generic dispatches
    the correct methods for builtin sqlite connections.


Other Fixes
╌╌╌╌╌╌╌╌╌╌╌

  ⁃ Fixed reversed SQL condition in `org-gnosis-insert'.
  ⁃ Fixed `org-gnosis-mode' not passing `LOCAL' argument to
    `remove-hook', causing the after-save hook to be removed globally
    instead of per-buffer.
  ⁃ Fixed typo in default `org-gnosis-journal-file' path.
  ⁃ Fixed `tags--cleanup-orphaned' indentation causing incorrect
    behavior.
  ⁃ Fixed `org-gnosis-insert-tags' redundant expression.
  ⁃ Fixed `org-gnosis-find' error message and redundant expression.


New Features
────────────

  ⁃ Added `org-gnosis-db-force-sync' command for unconditional database
    rebuild.
    ⁃ Provides clearer alternative to `C-u M-x org-gnosis-db-sync'.
    ⁃ Prompts for confirmation before dropping tables.


Improvements
────────────

  ⁃ Database version bumped to 4 with indexes on file columns for faster
    sync lookups.
  ⁃ Simplified orphaned tags cleanup into a single SQL query.
  ⁃ Extracted directory creation into `org-gnosis-ensure-directories'.
  ⁃ Improved error messages to suggest `org-gnosis-db-force-sync'.
  ⁃ Fixed docstrings and checkdoc warnings.


Testing
───────

  ⁃ Added 29 regression tests covering database init, CRUD, tags, links,
    sync change detection, file naming, journal, and mode hooks.


0.2.0
═════

Important Changes
─────────────────

Database Changes
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  ⁃ Database version bumped to 3, tracking `mtime' and `hash' for both
    nodes and journal files.
  ⁃ Automatic database migration prompts when schema is outdated.
  ⁃ Lazy database initialization - database connections are created only
    when needed, improving startup time.
  ⁃ Added `org-gnosis-database-file' custom variable to specify custom
    database file location.


Performance Improvements
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  ⁃ Major performance improvements for `org-gnosis-db-sync' with GC
    optimization during sync.
  ⁃ Two-tier incremental sync: fast `mtime' check, then accurate `hash'
    comparison.
    ⁃ Only processes files where both modification time and content have
      changed.
    ⁃ Dramatically improves performance for .gpg encrypted files and
      large repositories.
  ⁃ Both node files and journal files now use incremental sync with
    progress reporting showing changed/total file counts.
  ⁃ To force full resync, call `org-gnosis-db-sync' with prefix arg
    `C-u'. e.g `C-u M-x org-gnosis-db-sync RET'.


Journaling
╌╌╌╌╌╌╌╌╌╌

  ⁃ By default, today's journal entries are created in
    `org-gnosis-journal-file' as level 1 headings.
    ⁃ When set to `nil', creates separate files for each date entry.
    ⁃ Creating new entries (e.g., via `org-gnosis-journal-find' for an
      event, non-date) creates separate files in
      `org-gnosis-journal-dir' regardless of this setting.
    ⁃ Single journal file is only used for today's date entries.
  ⁃ Added `org-gnosis-journal-as-gpg' that when non-nil journal files
    will be created as `gpg' encrypted files.
  ⁃ Journal todos now only retrieve checkboxes from today's heading when
    using a single journal file, improving performance.


Tag Management
╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  ⁃ Automatic cleanup of orphaned tags (tags with no associated nodes)
    when updating files.
  ⁃ Improved tag-based node selection with dedicated functions.


Improvements
────────────

  ⁃ Simplified parsing algorithm for better performance and
  …  …
