Skip to content

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 03:54
· 7 commits to main since this release

Built by CI from this tag on clean runners. Verify with the .sha256 next to each asset.

What's new in 2.3.0

  • The hint telling you to run serve why used to stop right there, with nothing after it - not a real flag, and not the file or command that actually triggered the block. Guessing the rest was a coin flip: one session guessed --path, but the flag has always been --file. The hint now spells out the whole command, flag and value included, and serve why also accepts a bare path with no flag at all - the shortest thing to type when you do not remember the flag's name.

  • doctor used to leave two of its most useful checks silently unmeasured unless you passed --checkouts yourself, with no hint that the flag even existed. It now looks at the repo you ran it from and guesses the right folder on its own, and always prints which folder it used - the one you gave it, its own guess, or, if it could not find either, a plain line saying so and how to fix it.

  • A fact pinned to fire at every session start used to be permanently excluded from review, on the reasoning that pinning it was itself a decision. Measured on a real store: 48 pinned facts, 44 of them never looked at by anything, for as long as the store existed. A pinned fact now gets asked about once, the same as any other fact, and is then left alone unless it fires forty more times before its next review.

  • A check that looks for text present, absent, or absent everywhere can now point at a whole folder instead of one file, and it covers every file sitting directly inside it - not files in folders further inside, and not a backup copy of one of those files kept somewhere else. Handy when the same fact has to hold across more than one file in the same place, like a setting that must match between two config files. Pointing one at a system-wide folder like /tmp or C:\ is refused, since that is too broad to mean anything as a single fact.

  • The answer guard's length rule used to block a long reply even when you had explicitly asked for a list or overview and the reply actually was one. It now stands aside in exactly that case - not merely because your prompt happened to contain a word like "list", but only when the reply itself reads like one too. Separately, its evidence rule could be tricked into blocking an answer that already named a real commit or a real file-and-line, because it only recognised evidence written in one of a handful of fixed formats. A commit hash or a file:line citation in any shape is now recognised as well, on top of that original list.

  • The example answer-guard rulebook shipped with this project only showed three simple rules. It now also includes a working example of the length rule and the evidence rule described above, so copying the example file gives you both from the start instead of writing them yourself from scratch.

If you keep an MCP session running across the upgrade, it keeps using the binary it started with until you restart it. Hooks run fresh each time, so they pick up the new one immediately.

Which download

asset meaning search for
thor2-windows-x86_64.zip yes Windows, the machine your assistant runs on
thor2-linux-x86_64.tar.gz yes Linux, same
thor2-linux-x86_64-plain.tar.gz no servers, a NAS, a container

Each one is a bundle, not a single program. Version 2 is several small
programs that work together: install sets everything up, doctor tells you
whether it is healthy, and the rest run in the background once installed.

What is NOT in the box

  • No language model of any kind. Nothing calls out to an API, nothing needs
    a key. Meaning search needs a local model file (about 235 MB) that you supply;
    nothing downloads itself. Without it, search falls back to matching words and
    keeps working - it does not break.
  • Windows: you need the Microsoft Visual C++ Redistributable
    (MSVCP140.dll, VCRUNTIME140.dll) and DirectML.dll, which is already on
    Windows 10 1903 and later. If a program refuses to start, install the VC++
    redistributable first.

Install

Unpack everything into a folder where it can stay - the setup writes down where
it put things, so moving the folder afterwards breaks it. Then run install,
pointing it at your assistant's settings file. It backs that file up first and
only ever adds its own entries. Restart your assistant afterwards: it reads its
settings once, at startup, so until you restart nothing you installed is
running. Then run doctor to see whether it is actually healthy.

New here? The README walks through it step by step. Coming from version 1?
Your old notes are not lost - see the README's own note on that; version 1
itself is retired, and its source and docs stay reachable at the v1.0.0 tag.

What has actually been run

Every asset is built and tested by CI on a clean runner: the whole test suite,
plus a separate run with meaning search compiled in, plus the plain server
shape. The same two test runs, plus a release build with meaning search
compiled into both the server and client shapes, were also run before this tag
to confirm everything still compiles clean end to end. The packaged assets
themselves were not started by hand before publishing. If one does not start
for you, say so - that is the report worth having.

Full Changelog: v2.2.1...v2.3.0