Releases: alberti42/org-semantic
Release list
v0.4.1
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-installis nowM-x org-semantic-binary-install.M-x org-semantic-show-install-manualis 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-installhas 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.
v0.4.0
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-installdownloads the binary for your platform. It checks the binary against theSHA256SUMSfile of the release. Then it installs the binary in the directory where the package looks for it.M-x org-semantic-show-install-manualopens 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. TheSHA256SUMSfile 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 isorg-semantic-0.4.0-bin-aarch64-macos.tar.gz. The old name wasorg-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.
v0.3.0
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-modereindexes a vault two seconds after you stop saving notes. It does not build an index that does not exist.org-semantic-auto-reindex-touchtells the package that notes changed. Use it from a file watcher, or from another package that indexes the same notes.org-semantic-vault-rootaccepts 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.jsonfile 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:
fshows each passage in its note as you move,ljoins the terms of a word query withandoror,kandKchange 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:orLexical search for:. PressM-sfor semantic orM-lfor lexical. The two keys also work in the results buffer. org-semantic-canonical-vaultis 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
galso does. - Four keys in the results buffer:
=,P,aandM.
v0.2.0
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-modesaves it. PressM-pin 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:DONEfinds each passage that is not done. org-semantic-install-directoryis the directory for the binary. Unpack a release there and you do not need to configure anything.org-semantic-cache-homeand theORG_SEMANTIC_CACHE_HOMEvariable set the directory for the models.org-semantic-results-display-actionsets where the results buffer appears.display-buffer-alisthas priority.
Changed
- The prebuilt binaries are now compressed archives. An archive is 13 MB, and the file in it keeps its executable permission.
C-uasks for the ranking only.C-u C-ualso asks for the length of the list.- A search for the text at point offers the text as a default value. Press
RETto 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-findcommand in a new session.
v0.1.0
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,benchandserve. - 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.
servespeaks 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-findshows the results in a buffer withnext-errornavigation.org-semantic-reindexshows the progress of a rebuild. The package does not need org-mode, consult or vertico. Put the binary in yourexec-path, or setorg-semantic-executable. ORG_SEMANTIC_CACHE_HOME, andorg-semantic-cache-homein 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
--versionandmodelsin 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.