GNU-devel ELPA - gnosis

gnosis Atom Feed

Description
Knowledge System
Latest
gnosis-0.9.0.0.20260316.52136.tar (.sig), 2026-Mar-17, 480 KiB
Maintainer
Thanos Apollo <public@thanosapollo.org>
Website
https://thanosapollo.org/projects/gnosis
Browse ELPA's repository
CGit or Gitweb
All Dependencies
compat (.tar)
Badge
Manual
gnosis

To install this package from Emacs, use package-install or list-packages.

Full description

1. Gnosis

1.1. About

Gnosis is a GNU Emacs learning tool, with a spaced repetition like implementation.

Old versions

gnosis-0.8.0.0.20260304.151947.tar.lz2026-Mar-0475.8 KiB
gnosis-0.7.0.0.20260224.120212.tar.lz2026-Feb-2454.7 KiB
gnosis-0.6.0.0.20260202.35243.tar.lz2026-Feb-0241.2 KiB
gnosis-0.6.0.0.20260130.184459.tar.lz2026-Jan-3041.2 KiB
gnosis-0.6.0.0.20260127.33259.tar.lz2026-Jan-2741.1 KiB
gnosis-0.6.0.0.20260126.132957.tar.lz2026-Jan-2641.1 KiB
gnosis-0.5.8.0.20260124.210521.tar.lz2026-Jan-2541.0 KiB
gnosis-0.5.8.0.20251108.184759.tar.lz2025-Nov-0840.2 KiB
gnosis-0.4.10.0.20241212.14747.tar.lz2025-Jan-1540.9 KiB
gnosis-0.4.3.0.20240906.122813.tar.lz2024-Sep-0640.3 KiB

News

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.

… …