[GNU ELPA] Gnosis version 0.9.0
ELPA update <[email protected]> Tue, 17 Mar 2026 17:05:36 -0400
| Newsgroups | gmane.emacs.sources |
|---|---|
| Message-ID | <[email protected]> |
Version 0.9.0 of package Gnosis has just been released in GNU ELPA.
You can now find it in M-x list-packages RET.
Gnosis describes itself as:
================
Knowledge System
================
More at https://elpa.gnu.org/packages/gnosis.html
## Summary:
1 Gnosis
════════
1.1 About
─────────
Gnosis is a GNU Emacs learning tool, with a spaced repetition like
implementation.
• Project's Page: <https://thanosapollo.org/projects/gnosis/>
• User Manual: <https://elpa.nongnu.org/nongnu/doc/gnosis.html>
⁃ Demo deck: <https://codeberg.org/thanosapollo/gnosis-demo>
⁃ /It's recommended to try out the demo deck for first time users./
## Recent NEWS:
2026/03/16 2026/03/04
⁃ [Homepage]
⁃ [Upstream]
⁃ [Changelog]
[Homepage] <https://thanosapollo.org/projects/gnosis/>
[Upstream] <https://git.thanosapollo.org/gnosis/>
[Changelog] <https://thanosapollo.org/log/gnosis/>
1 0.9.0
═══════
1.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.
1.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
filtering and node export.
1.3 Dashboard
─────────────
⁃ Tags view with regex filter (`l'), regex search (`SPC'), and tag
counts.
⁃ Bulk tag rename via regex pattern (`R') using a temp-table approach
for O(1) SQL statements regardless of batch size.
⁃ Anki import keybinding in the dashboard menu.
⁃ Merge case-duplicate tags (`C'): groups tags by case, keeps the
most-used variant as canonical.
⁃ Meant to simplify imports from anki decks hierarchical tag
structure
⁃ Entry cache for themata view (avoids re-querying unchanged entries).
⁃ Cache invalidation on tag mutations so the themata view stays fresh.
1.4 Performance
───────────────
⁃ *Batch SQL helpers*: `gnosis-sqlite-execute-batch' and
`gnosis-sqlite-select-batch' auto-chunk IN clauses to stay within
`SQLITE_MAX_VARIABLE_NUMBER'.
⁃ N+1 query patterns eliminated throughout: tag suspend, tag delete,
bulk link, export, and dashboard operations.
⁃ Bulk tag rename uses a temp mapping table (4 SQL statements for any
number of renames, instead of 2N).
⁃ `SELECT DISTINCT' replaces Elisp deduplication for tag lookups.
1.5 Bug fixes
─────────────
⁃ Fix DST bug in `gnosis-algorithm-date'.
⁃ Fix `gnosis-review-topic': flatten select results, fix y-or-n-p
logic.
⁃ Fix `gnosis-completing-read' to use `completing-read' for
require-match.
⁃ Fix force-sync purge and journal link FK violation.
⁃ Warn on duplicate filename when timestring is nil in node creation.
2 0.8.0
═══════
2.1 New features
────────────────
⁃ Auto input-method detection: gnosis detects the script of the
expected answer (Greek, Cyrillic, etc.) and activates the
appropriate input method during review. Configured via
`gnosis-script-input-method-alist'.
⁃ Change thema type and deck via `gnosis-update-thema'.
⁃ Dashboard bulk-link action for currently displayed themata.
⁃ Dashboard header-line with entry count and context.
⁃ Asynchronous deck import with `gnosis-import-deck-async'.
⁃ Demo deck included in `decks/demo.org'.
2.2 Performance
───────────────
⁃ New `gnosis-tl' module replaces `tabulated-list-print' for dashboard
rendering (3-4x faster).
⁃ Progressive async rendering for large dashboards.
⁃ Batch-fetch review data instead of per-thema queries.
2.3 Bug fixes
─────────────
⁃ Fix anagnosis event calculation in the algorithm.
… …