                  2026/04/04 2026/03/31 2026/03/26 2026/03/25 2026/03/16


⁃ [Homepage]
⁃ [Upstream]
⁃ [Changelog]


[Homepage] <https://thanosapollo.org/projects/gnosis/>

[Upstream] <https://git.thanosapollo.org/gnosis/>

[Changelog] <https://thanosapollo.org/log/gnosis/>


1 0.10.3
════════

1.1 Bug fixes
─────────────

  ⁃ Fix `gnosis-table-exists-p' failing to query `sqlite_master'.
  ⁃ Clean up orphaned `node-tag' and `node-links' rows on file deletion.


2 0.10.2
════════

2.1 Performance
───────────────

  ⁃ Eliminate redundant GPG decryption on save for `.org.gpg' files.
  ⁃ Git operations (add, commit, push) are now fully async.


2.2 Other
─────────

  ⁃ `gnosis-journal-todo-keywords' defaults to `("TODO")' instead of
    inheriting `org-todo-keywords'.


3 0.10.1
════════

3.1 Algorithm
─────────────

  ⁃ Cap post-failure interval at 7 days to prevent overly lenient
    reschedules for mature cards.


3.2 Bug fixes
─────────────

  ⁃ Fix `gnosis-import-db' initializing review state with wrong values,
    causing errors on first review of imported themata.


3.3 Other
─────────

  ⁃ Demo collection shipped as `.gnosis' instead of org file.


4 0.10.0
════════

4.1 Breaking changes
────────────────────

  ⁃ *Date storage migrated to integers*: review dates are now stored as
    YYYYMMDD integers instead of Lisp lists.  Migration v7 converts
    existing data automatically.
  ⁃ *Export/import rewritten*: export now produces a `.gnosis' SQLite
    database.  Import shows a diff buffer before applying.
    ⁃ Old org-file exports are no longer supported.


4.2 New features
────────────────

  ⁃ *Anki GUID-based duplicate detection*: re-importing the same deck
    skips already-imported notes (migration v8).
  ⁃ *Review progress header*: header-line shows reviewed/total as a live
    counter.
  ⁃ *Import diff buffer*: `gnosis-import-db' shows NEW/CHANGED entries
    with detail view on `RET' before applying.
  ⁃ *Anki import improvements*: template-aware field resolution,
    NFC-normalized tags, system tag stripping (`marked', `leech'), git
    commit after import.


4.3 Performance
───────────────

  ⁃ Due/overdue queries use integer comparison in SQL instead of Elisp
    filtering.
  ⁃ New indexes on `review_log', `thema_tag', `thema_links',
    `node_links', and `activity_log'.
  ⁃ N+1 queries eliminated in review session and Anki model parsing.


4.4 Bug fixes
─────────────

  ⁃ Fix proto phase failures computing amnesia-based interval instead of
    resetting to 0.
  ⁃ Fix bulk-link matching to be case-insensitive.
  ⁃ Fix duplicate node-link insertion for files.
  ⁃ Fix overdue exclusion: unreviewed themata (n=0) no longer counted as
    overdue.


5 0.9.0
═══════

5.1 Breaking changes
────────────────────

  ⁃ *Dropped emacsql dependency*: gnosis now uses Emacs's built-in
    `sqlite' module (requires Emacs 29+).  The new `gnosis-sqlite'
    backend handles all database access.
  ⁃ *Unified database*: org-gnosis has been merged into gnosis.  A
    single `gnosis.db' stores both themata and nodes.  Existing
    org-gnosis data is migrated automatically.
  ⁃ *Decks removed*: the deck abstraction is gone.  Existing deck names
    are automatically converted into tags during the v6 migration, so no
    data is lost.  Export and import are now thema-centric with tag
    filtering.


5.2 New features
────────────────

  ⁃ *Anki import*: import Anki decks or user collections directly with
    `gnosis-anki-import'.
  ⁃ *Tag filtering*: `gnosis-tags-filter-prompt' supports `+tag -tag'
    syntax for include/exclude filtering.  Used in export and
    `gnosis-collect-thema-ids'.
  ⁃ *Day start hour*: `gnosis-algorithm-day-start-hour' (default 3) lets
    you define when a new review day begins.
  ⁃ *Tag bulk operations*: rename, regex bulk rename (`R'), merge case
    duplicates (`C'), bulk delete, and suspend/unsuspend from the
    dashboard tags view.  Tag renames are merge-safe (handles UNIQUE
    conflicts when target tag already exists).
  ⁃ *Elapsed time intervals*: the algorithm uses actual elapsed time for
    interval calculation.
  ⁃ *Review transient menu*: `gnosis-review' uses transient instead of
    completing-read.
  ⁃ *Template expansion*: `{*}' heading markers in templates are
    expanded relative to insertion context via
    `gnosis-org-expand-headings'.
  ⁃ *Export with tag filtering*: `gnosis-export-themata' supports tag
  …  …
