Release notes, v0.9.1
TandemLLM 0.9.1 adds web search and media playback to the Chat tab, and turns on the loop guard and memory notes in the shipped conductor profiles. The decode path does not change. Every change is in CHANGELOG.md, and the PDF below is the manual.
What's new
- Web search in the Chat tab: a built-in
web_searchtool with DuckDuckGo (the default, no setup) or your own SearXNG instance, set in the chat settings. The model cites the URLs and reads a page withweb_fetch. - Media in the Chat tab: video, audio and PDF files open in a player or the browser's PDF viewer, in the Files pane and the
presentcard. chatd streams a workspace file with byte ranges, with no 2 MiB cap. - The loop guard is on in the shipped
coding,chat-app,hermes,overnightandchatprofiles. When the model makes the same tool call a third time in one user turn and the results were the same each time, the guard stops the call and the model writes a different one. - The loop escape: after a repeated or near-repeated call, the session samples with the model card's settings until it makes progress, then decodes greedy again. A client's own sampling wins. Output changes on those turns only.
- Memory notes are on in the shipped
chat,coding,hermesandchat-appprofiles, so the Chat tab sees them too. The model is told the notes are its memory between chats. The Context panel shows a turn's notes. --reasoning-effort noneandoffturn thinking off for every request that says nothing about thinking.
Fixes
- Setup Guide: after a reload, a finished install job stays finished and keeps its whole log. The change list names the keys a model switch drops from
run/setup.env. - Setup Guide: the fetch step downloads the models of the tools you turn on (the shadow reader, the narrator, Laya). A failed shadow reader load is tried again after 300 s.
- The 27B's EXL3 profiles fetch only the base tensors an EXL3 load reads, by HTTP range requests: 3.54 GB instead of 30.41. A fresh
exl3-6.0downloads 36.48 GB, not 63.34. - Behind a reverse proxy, a 502, 503 or 504 during an engine restart shows the dashboard's cached page, which reloads once
/healthanswers.
Upgrade
Stored conductor profiles migrate once at the first start. In the five profiles above, the loop guard turns on unless a stored version of the profile ever had it on, and a profile without a sampling section gets one with the loop escape on. A stored chat, coding, hermes or chat-app profile without a memory switch gets memory: on; an explicit value stays.
To upgrade a box you installed with --setup, check out 0.9.1 and switch to your profile again. Its files are on disk already, so nothing downloads twice:
curl -fsSLO https://raw.githubusercontent.com/0xBakeer/TandemLLM/v0.9.1/install.sh
bash install.sh --setup --force-setup --yes
~/TandemLLM/run/ops/use-profile.sh <profile>
A box installed without --setup upgrades with bash install.sh --yes and the same --dir. On a new DGX Spark:
curl -fsSLO https://raw.githubusercontent.com/0xBakeer/TandemLLM/v0.9.1/install.sh
bash install.sh --setup --yes
~/TandemLLM/run/ops/use-profile.sh lfm25-exl3-3.5 --dry-run # each file's URL and size
~/TandemLLM/run/ops/use-profile.sh lfm25-exl3-3.5
Known limits
- DuckDuckGo can answer with a rate limit or a bot check (HTTP 202). The tool returns that as an error result. SearXNG needs an instance with the
jsonformat on. - The loop guard catches a repeated call. A model that repeats a failing approach with different calls is not caught yet.
- Carried over from 0.9.0: LFM2.5 has no draft head, and its shadow reader and KV pool are off. On LFM2.5 the conductor adds no memory notes. The Chat tab is in beta, there is no video input to the model, and the Flash-Next 5.05 pack does not load yet.
Files of the release
- tandemllm-manual-0.9.1.pdf (4436 KiB)