mindfork 0.11.2 — a bigger model on a smaller card, and a long page read whole
mindfork 0.11.2 is out. Two things in it change what you can do; the rest are fixes.
Arguments the settings have no field for
When mindfork runs llama.cpp for you, it builds the server's command line from the settings: the model, the context, the GPU layers. llama.cpp has far more switches than that, and until now the only way to use one was to leave managed mode and start the server yourself.
Each managed section — the assistant's, impersonation's and the embedding server's — now ends with an Extra arguments field, added to the end of that command line. The case it was built for is a mixture-of-experts model on a card too small for it. Measured on gemma-4-26B-A4B at a 16k context:
| Extra arguments | Video memory | Generation |
|---|---|---|
| — | 17.3 GB | 141.8 tokens/s |
--n-cpu-moe 10 | 12.8 GB | 44.9 tokens/s |
--n-cpu-moe 20 | 8.4 GB | 28.0 tokens/s |
The experts that move to the processor cost speed, and the table says how much; what they buy is a model that runs at all on an 8 GB card.
The field refuses what would break the app rather than extend it: a flag one of
the section's own fields already sets is refused with that field named, and so
are flags that would lock the app out of its own server, give the server tools
that run commands for whoever reaches its port, or have it download models — for
those, run llama-server yourself in external mode. Two related fixes ride
along: a server that refuses its arguments now says so in llama.cpp's own words,
instead of the app guessing at a corrupt model or a lack of memory, and an
LLAMA_API_KEY in your environment no longer locks the app out of the server it
started.
A long page, found with one search
Asked to read the project's own specification, the assistant used to get the first 400 000 characters of it — the last five chapters simply missing — with a note that said only "this is not the whole page". And although the tool that fetched it pointed at search, the search could not work yet: its index was built only after the reply. The assistant was told "no index was built" and guessed its way through the pages.
Now a fetched page arrives whole up to a million characters, and its search index starts building the moment it is attached; a search that meets it still building waits for it. Asked about a detail in the last chapter of an 81-page specification, the assistant found it with one search, six times out of six. Without an embedding server the page is offered for reading page by page, and the assistant is told so rather than sent to a search that cannot come.
A page past the limit now says where it ends — the last section it reached and how much was left out, when that is known — and the saved copy carries the same note at the top and a marker where the text stops. Pages served as Markdown can be fetched too; they used to fail as "no readable text".
Smaller things
- In Windows Terminal, hovering the line under a link while a file was being
indexed underlined that line and showed
Invalid URI. The indexing spinner now redraws only when it has something new to show. mindfork setup --verifysays which setting moves a server whose port is already taken — on RunPod the image's own web server sits on the embedding server's default port.
Nothing about the stored data changes: no migration runs. The one new setting,
the extra arguments, is simply ignored by 0.11.1 if you go back. The full list is
in the changelog;
downloads are on the
releases page, and
cargo install mindfork builds the same version from
crates.io.