Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 10:07
· 118 commits to main since this release
1c5084c

This is the first release. org-semantic indexes a directory tree of org-mode notes and searches it in two ways: by meaning, with embeddings, and by word, with BM25. It keeps the two rankings separate. It is one static binary. You do not need a database, Python or a service.

The command line is the release. The Emacs package is early. The commands below are in use and measured. The package searches, shows results and reindexes, but it is not complete. There is no minibuffer interface and no installer. Version 0.2.0 is the release that makes the package usable.

Added

  • The commands index, search, chunks, tokens, models, bench and serve.
  • Indexing is incremental for each passage, not for each file. If you add one meeting to a file of many meetings, the binary embeds one passage and not the full file.
  • serve speaks JSON-RPC 2.0 through stdio and keeps the embedding model in memory. A warm semantic query takes about 9 ms. A cold query takes about 309 ms. Indexing runs in a worker thread, so the server answers a search during a rebuild.
  • An Emacs package. org-semantic-find shows the results in a buffer with next-error navigation. org-semantic-reindex shows the progress of a rebuild. The package does not need org-mode, consult or vertico. Put the binary in your exec-path, or set org-semantic-executable.
  • ORG_SEMANTIC_CACHE_HOME, and org-semantic-cache-home in Emacs, set the directory for the models. A model is between 128 MB and 2.24 GB.
  • The macOS binaries are signed and notarized. CI builds them from a version tag.

Known limitations

  • On macOS the binary works only on Apple Silicon. ONNX Runtime has no prebuilt library for Intel macOS, so the Intel binary does not link. Rosetta does not help, because there is no Intel binary to translate.
  • The Windows binary starts and answers --version and models in CI. Nobody has indexed or searched with it.
  • You cannot interrupt the binary while it downloads a model.
  • The Emacs package does not install or update the binary. It compares the versions and gives you a warning.

Full changelog
All commits in this release