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-filequerying with full paths instead of basenames, causing incremental sync to silently fail. - Fixed
org-gnosis-update-fileto 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 processperror on Emacs 29+ by pre-loadingemacsql-sqlite-builtinto ensure cl-generic dispatches the correct methods for builtin sqlite connections.
Other Fixes
- Fixed reversed SQL condition in
org-gnosis-insert. - Fixed
org-gnosis-modenot passingLOCALargument toremove-hook, causing the after-save hook to be removed globally instead of per-buffer. - Fixed typo in default
org-gnosis-journal-filepath. - Fixed
tags--cleanup-orphanedindentation causing incorrect behavior. - Fixed
org-gnosis-insert-tagsredundant expression. - Fixed
org-gnosis-finderror message and redundant expression.
New Features
- Added
org-gnosis-db-force-synccommand for unconditional database rebuild.- Provides clearer alternative to
C-u M-x org-gnosis-db-sync. - Prompts for confirmation before dropping tables.
- Provides clearer alternative to
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
mtimeandhashfor 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-filecustom variable to specify custom database file location.
Performance Improvements
- Major performance improvements for
org-gnosis-db-syncwith GC optimization during sync. - Two-tier incremental sync: fast
mtimecheck, then accuratehashcomparison.- 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-syncwith prefix argC-u. e.gC-u M-x org-gnosis-db-sync RET.
Journaling
- By default, today’s journal entries are created in
org-gnosis-journal-fileas level 1 headings.- When set to
nil, creates separate files for each date entry. - Creating new entries (e.g., via
org-gnosis-journal-findfor an event, non-date) creates separate files inorg-gnosis-journal-dirregardless of this setting. - Single journal file is only used for today’s date entries.
- When set to
- Added
org-gnosis-journal-as-gpgthat when non-nil journal files will be created asgpgencrypted 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 maintainability.
- Better handling of topic titles - only includes parent headings when they have IDs.
- Added
org-gnosis-get-nodes-datafor retrieving node information with backlink counts. - Improved test coverage for parsing, title processing, and journal todos.
0.1.2
Important Changes
Titles for nodes are now stacked with their parent headings.
For example a node file with “Roman Empire” as title and level 1 heading “Emperors”, the node title for “Emperors” will be “Roman Empire:Emperors”
Fixes
org-gnosis-insertwhen called with a selected region, the region will be used as the link description.
0.1.1
- Minor bug fixes
0.1.0
- Refactor algorithm for parsing buffer data.
- Improves implementation with new version org-gnosis-ui.
- Fix minor edge case scenarios.
- Update database to version 2.
0.0.9
- Add support for inserting journal entries as links with custom description.
0.0.8
New Features:
- When org-gnosis-insert is called with a prefix arg, prompt for custom link description
Fixes:
- Use proper quoting for string literals, see [1][2]
- This resolves previous issues for BSD systems
[1] https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted [2] https://github.com/magit/emacsql/issues/128#issuecomment-2682104151
0.0.7
- Fix insertion of tags for file topic
- Add org-gnosis-visit-backlinks.
0.0.6
Minor update with bug fixes & documentation improvements:
- Fixes insertion of tags issues
- Tags are now inserted at the nearest heading with an ID, or as filetags if none found.
- Update FSF assignment form in docs
0.0.5
Minor update with documentation changes
- Fix typos
- Clearer examples & terminology
- Fix formatting for GNU ELPA
0.0.4
Minor update with the following changes:
- Adds documentation.
- Adds Makefile & manifest.scm
- Updates the formatting of NEWS file
0.0.3
Minor Update that adds the following features:
- gpg encryption support.
- Inserting tags for headings, with completions of tags found in the db.
- Minor improvements in error messages & error handling.