Skip to content

Releases: alberti42/org-semantic

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 15 Aug 09:19
90ffeac

This release makes Emacs get the binary for you. If org-semantic cannot find one, it asks what to do and then does it.

Binary version 0.3.0, unchanged. There is nothing to download if you already have the binary.

Two commands changed name or went away. Update your configuration if it names either of them. There is no alias, so an old name fails as an unknown command.

  • M-x org-semantic-install is now M-x org-semantic-binary-install.
  • M-x org-semantic-show-install-manual is removed.

Changed

  • A missing binary is now a question. Emacs offers to download the binary, or to open the manual on how to build it. If you choose the download, the search or the index that needed the binary continues when the download is complete.
  • The question is not asked when nobody waits for an answer. A reindex after a save reports the missing binary and asks nothing.
  • M-x org-semantic-binary-install has the new name because it installs the binary, and not the package.
  • The manual is one of the answers to the question above. It is no longer a command of its own.

Full changelog
All commits in this release

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 07:47
379f4e2

This release adds two ways to install the binary. Emacs can download it for you. You can also build it from the source archive.

Added

  • M-x org-semantic-install downloads the binary for your platform. It checks the binary against the SHA256SUMS file of the release. Then it installs the binary in the directory where the package looks for it.
  • M-x org-semantic-show-install-manual opens the part of the manual that tells you how to build the binary.
  • Each release now contains a source archive, org-semantic-0.4.0-src.tar.gz. The SHA256SUMS file contains the checksum of this archive.

Changed

  • The names of the release assets now contain the version number and the word bin. The new name is org-semantic-0.4.0-bin-aarch64-macos.tar.gz. The old name was org-semantic-aarch64-macos.tar.gz. Change the scripts that use the old names.
  • The manual has a new section, What it touches. This section tells you what the index does with your notes, and which data stays on your computer.

Fixed

  • A long outline path in the results buffer started at the left margin. Now it aligns below the address.

Full changelog
All commits in this release

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 17:03
fdcec97

This release does two things. The lang: filter now works with semantic search, not only with word search. The Emacs package also does more for you: it keeps the index current when you save a note, and it asks what to do when a search fails.

This release needs binary version 0.3.0.

Rebuild the semantic index one time. Semantic search does not work until you do this. Run org-semantic index <vault> --full, or press C-u C-u M-x org-semantic-reindex. The index now records a language for each passage, so the package refuses an older index. The word index is not affected.

You must now declare your vault. Set org-semantic-vault-root to your notes directory. Before this release, the package found a vault by its .org-semantic directory. It no longer does this.

Added

  • lang: and -lang: now narrow a search by meaning. Both indexes record the language of each passage.
  • org-semantic-auto-reindex-mode reindexes a vault two seconds after you stop saving notes. It does not build an index that does not exist.
  • org-semantic-auto-reindex-touch tells the package that notes changed. Use it from a file watcher, or from another package that indexes the same notes.
  • org-semantic-vault-root accepts a function. Use a function when another package decides which vault is open.
  • The index of a vault can be in a different directory from the notes. A vault.json file gives the location of the notes.
  • Passages show the faces of org-mode: emphasis, verbatim, headings, block markers and links.
  • New keys in the results buffer: f shows each passage in its note as you move, l joins the terms of a word query with and or or, k and K change how many notes appear, + and - change how many passages each note contributes.

Changed

  • A failed search asks what to do in the minibuffer. Each answer is one key, and each answer tells you what it costs.
  • The query prompt gives the name of the ranking: Semantic search for: or Lexical search for:. Press M-s for semantic or M-l for lexical. The two keys also work in the results buffer.
  • org-semantic-canonical-vault is now public. Use it if your own code gives a vault name to the server.

Fixed

  • A preview could replace the list of results.
  • The offer to download a missing model downloaded nothing.
  • A passage that started inside a block did not contain the first line of the block. A blank line in a block also divided the block into two passages. A passage now contains the full block.
  • A first run could ignore the # ltex: language= line of a note.
  • A search by word from a failure message changed the ranking of the buffer permanently.

Removed

  • The "Try again" offer. It only ran the search again, which g also does.
  • Four keys in the results buffer: =, P, a and M.

Full changelog
All commits in this release

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 22:29
09dd132

This release is for the Emacs package. In 0.1.0 the package was not complete. It is now the way to use org-semantic from Emacs.

Update the binary as well as the package. Binary 0.1.0 reads a negated predicate as its opposite: it searches for -dir:archive as if you wrote dir:archive. It gives you the opposite of your request, and it tells you nothing.

Added

  • Each part of the address of a hit is a link. The directory opens in Dired. The note opens at the top. The section goes to its heading. The two line numbers go to the start and to the end of the passage.
  • All prompts share one search history. savehist-mode saves it. Press M-p in the results buffer to find the query that made the list.
  • dir: accepts an absolute path. A path that starts with / or ~ is absolute. All other paths are relative to the vault.
  • All predicates accept a minus sign: -dir:, -todo: and -lang: join -tag:. A query can contain only exclusions. For example, -todo:DONE finds each passage that is not done.
  • org-semantic-install-directory is the directory for the binary. Unpack a release there and you do not need to configure anything.
  • org-semantic-cache-home and the ORG_SEMANTIC_CACHE_HOME variable set the directory for the models.
  • org-semantic-results-display-action sets where the results buffer appears. display-buffer-alist has priority.

Changed

  • The prebuilt binaries are now compressed archives. An archive is 13 MB, and the file in it keeps its executable permission.
  • C-u asks for the ranking only. C-u C-u also asks for the length of the list.
  • A search for the text at point offers the text as a default value. Press RET to accept it, or type to replace it.

Fixed

  • The word index returned nothing for a query that contained only exclusions.
  • The semantic search through the server accepted -lang: but ignored it.
  • The ranking prompt offered only one of the two rankings.
  • You could not put the cursor in a passage with the mouse. A click moved you to the note.
  • The gutter painted a background, and a repeated line lost it. The left edge was not straight.
  • Emacs could not find the org-semantic-find command in a new session.

Full changelog
All commits in this release

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 10:07
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