Contents TandemLLM Docs
v0.11.1
Star58

Release notes, v0.11.1

TandemLLM 0.11.1 on GitHub, published 2026-10-16. The changelog chapter of this version: Changelog summary; the full file: CHANGELOG.md.

TandemLLM 0.11.1 is a security fix for the Chat tab. Update every box that runs it. The release also gives Bolt's EXL3 packs from 2.5 to 6.0 bits their StairCut price files, so drafting on them is no longer slower than plain decoding. Every model writes the same text as in 0.11.0. Every change is in CHANGELOG.md, and the PDF below is the manual.

Security

chatd, the Chat tab's server, reads and writes two folders that a chat's sandbox can change: the chat's workspace and the sandbox's home. In 0.10.0 and 0.11.0 chatd followed a symlink there. Code running in the sandbox could point an attachment upload, a file tool, a snapshot or the Open WebUI runner's files at a path outside the sandbox. chatd then read or wrote that path with the rights of the user it runs as.

In 0.11.1 no access in those folders follows a symlink. chatd opens every folder on the way with O_NOFOLLOW, writes a new file and renames it into place, and reads regular files only. A path with a symlink on it is refused. An attachment that cannot be saved under uploads/ still goes out with its message, and the prompt says why. Joey reported the upload case.

Upgrade

Run the 0.11.1 installer again, then restart chatd. chatd is its own process, so it keeps the old code until it restarts. On a box you installed with --setup:

curl -fsSLO https://raw.githubusercontent.com/0xBakeer/TandemLLM/v0.11.1/install.sh
bash install.sh --setup --force-setup --yes
bash ~/TandemLLM/src/ops/chatd.sh stop
bash ~/TandemLLM/src/ops/chatd.sh start

A box installed without --setup upgrades with bash install.sh --yes and the same --dir.

Bolt EXL3: drafting no longer loses to plain

In 0.11.0, Bolt's EXL3 packs at 3.0, 3.5 and 4.0 bits wrote prose and chat slower with LiLiCorr than with plain decoding: prose at 31 to 33 tok/s against about 41 plain. The packs from 2.5 to 6.0 had no StairCut price file. Without one, the cut kept a price of 1 ms for a one-row block, so it often threw away a draft it had already paid for. Each pack now ships its price file, measured on the Spark.

profile plain prose chat code
nemotron-bolt-exl3-2.0 (default) 43.2 65.6 71.1 102.1
nemotron-bolt-exl3-2.5 41.9 65.8 68.9 114.7
nemotron-bolt-exl3-3.0 41.6 58.1 69.3 100.8
nemotron-bolt-exl3-3.5 40.6 59.5 65.9 101.0
nemotron-bolt-exl3-4.0 40.4 52.0 62.0 97.9
nemotron-bolt-exl3-5.0 33.9 51.7 55.5 81.7
nemotron-bolt-exl3-6.0 29.1 40.1 50.1 76.3

One DGX Spark, 2026-10-16, tok/s. One request through the server, 512 greedy tokens, thinking off, the mean of 3 runs. The drafted columns use LiLiCorr and the lookup, and every drafted text equals the plain run's. These rows are now in the setup guide's speed table.

Also in 0.11.1

  • Two contributions by joeynyc. A pinned asset now downloads at its revision (pull request #1). NemotronH's saved-state fingerprint now covers its GGUF reader and the GGUF file (pull request #2). Because that fingerprint changed, Bolt's and Super VL's saved conversations from 0.10.0 and 0.11.0 are not reused, and their first request reads the prompt again.
  • Each weight card in the setup guide names its maker and its Hugging Face repository. turboderp's Flash-Next packs are listed as community packs.
  • The install is two commands, then the setup guide in the browser at http://127.0.0.1:8000/dashboard/#/setup.

Known limits

  • Super VL's EXL3 2.0 pack sometimes drafts prose below plain. In one of three runs on 0.11.1 it wrote prose at 33.5 tok/s against 36.5 plain; the other two ran at 37.3. The cause is not isolated yet.
  • The other limits of 0.11.0 still hold: see its release notes.

Files of the release