Repository navigation
0.94 release notes
Pictures, documents and voice
- Pictures are on by default. Paste, drop, screenshot or photograph a picture into the chat, or send one through
the API. On one graphics card they are read on the CPU (no VRAM taken from the model); with multi-GPU on, on the
second card (about 0.4 s a picture). On PCs with less than about 170 GB of RAM the picture reader on the CPU starts
with the first picture (about 7 s once, longer while the model is writing) and stops after 10 idle minutes, so its
~4 GB of RAM is free the rest of the time. If the picture reader cannot start (a broken PyTorch, say), the model
still starts and answers text.Disable Pictures.batturns pictures off. - Chats with pictures can reuse earlier turns instead of re-reading the whole conversation, when the app sends
the pictures back unchanged (it took about a minute a turn in a long agent session). A changed picture is always read
again. - Documents: attach PDF, Word, Excel, PowerPoint, HTML, CSV or text files; the chat shows how many tokens they
are and how long the first read takes. Agents can send document blocks too (Claude Code reading a PDF). - Voice (optional,
Enable Voice.bat): push-to-talk dictation, read-aloud on every answer, and a hands-free talk
mode you can interrupt. Runs on the CPU's efficiency cores or a second card, never on the model's card.
/v1/audio/transcriptionsand/v1/audio/speechfor apps.
Everyday use
- The page opens at once and shows the model loading, with an estimate from your last start.
- Pause / Resume frees the RAM and the graphics card (for a game) and loads again on your next message; optional
auto-pause when a game takes the card. - Chat history (search, pins, rename, export) when you turn on "Save chats in this browser".
- Use it from your phone: one switch sets a key, shows a QR code, and offers the firewall rule; the page can be
added to your home screen. - Downloads you can leave alone: the PC stays awake, stalled downloads restart, one progress line, a notification
when done; a drive check before the big download (free space, drive type, page file, time estimate). - Chat modes (Quick / Think / Code / Write), a "Connect an app" card with copy-ready settings, and a health card with
fixes for common Windows problems.
For coding agents
- Claude Code: its small background calls (titles, command checks, the quota check) are answered quickly and
never push your real request back; tool search keeps hidden tools out of the prompt; WebSearch works when you set a
search provider (off by default). - A cancelled request (Esc) no longer throws the conversation away - the next message continues where it was
instead of re-reading everything. - Loop guard (on by default): when an agent makes the same tool call 4 times in a row, the model gets one short
note to try something else or stop."loop_guard": falsein the run config turns it off. - Structured output and tool controls now work on all three APIs; long reads send keep-alive pings so agents do not
time out;/v1/embeddingsand/v1/rerank(optional), stored Responses withprevious_response_id, and the small
endpoints agents ask for (/tokenize, token counts, a Codex model catalog).
Speed
- Writing is about 5% faster at the default sampling (temperature 1, top-p 0.95): 41.3 vs 0.93's 39.2 tok/s on
UD-IQ2_XXS at 192 GB, and 41.7 vs 40.8 greedy, - Long prompts are read faster: a fresh 60K-token prompt at 811 vs 0.93's 747 tok/s, 30K at 860 vs 758, 7K at 551
short chat prompts read as before. The model's later layers now read only
the last 128 tokens of a prompt, as DeepSeek's own design does. This changes the output slightly but not its quality: our
7-task agent test scores the same with it on and off, and short and long prompts agree with DeepSeek's own model as
often as before. Each conversation keeps its own window, so a short request after a long one is read normally.
STRATA_ENC_BOUND=0turns it off. - The drafter guesses better:
- drafts now stop when the product of the drafter's confidences falls below 0.25 (it used to stop at the first
guess under 0.6): +6.5% writing speed at temperature 1 in agent sessions, the same at greedy; - it keeps the experts the 1017 model's drafter uses most: 112 / 80 / 48 per block on cards of 22 GB or more,
96 / 64 / 32 on smaller cards and on PCs with less than 80 GB of RAM. On 22 GB cards it accepts as many guesses
as keeping all 128 experts, in less VRAM than all 128 (a little more than 0.93's 64 per block); below that it
uses the same VRAM as 0.93; - new installs get a slightly better drafter (the same size, its experts shrunk with an importance matrix): +0.6% of
its guesses accepted at greedy, +0.2-0.3% at temperature 1. See "Updating from 0.93" for existing installs.
The first two are in the writing figure above, which was measured with 0.93's drafter (what an update keeps); the
new drafter adds its small gain on top for new installs.
- drafts now stop when the product of the drafter's confidences falls below 0.25 (it used to stop at the first
- The first answer after a start comes about 2 s sooner: the drafter file is read into memory while the model
loads. - Exact routing for answers (opt-in):
STRATA_ANSWER_ROUTE_BIAS=0keeps the usual route bias while the model
thinks and routes exactly in the answer after it (another value sets another bias there). Off by default: it cost
10-13% of writing speed in agent sessions, and its quality gain is not measured yet.
Security and privacy
- The server refuses to listen on your network without an API key (it used to warn);
"allow_no_key": true
keeps the old behaviour on a network you trust. - Picture URLs are never fetched from inside your PC or home network (
STRATA_IMAGE_FETCH_PRIVATE=1allows it).
The check covers the address each connection really reaches, so a web name that changes its answer (DNS
rebinding) cannot get around it. Web fetch has the same check. - Pictures by file path are read only up to 32 MiB. A server that listens beyond this PC (the phone page, a LAN)
no longer reads them at all, unless"image_local_files": trueis in the run config; an app on your network should
send the picture itself (a data: URL) instead. - Documents: an Office file that would unpack to a huge size (a "zip bomb") is refused, and the document reader
runs with a 2 GB memory limit and a cap on the text it returns. Web fetch reads PDFs in that same reader, not
inside the server. - Patterns with a time limit: tool search and JSON-schema
patternchecks stop after a short time, so a pattern
that never finishes cannot freeze the server (one that runs out of time counts as no match). - Voice: the speech helpers refuse requests from other web sites and take only the server's own.
- No framing: other web sites cannot show the chat page or the request monitor inside a frame to trick a click.
- Hugging Face usage reports are off in every launcher and download script.
- Pictures are decoded only as JPEG, PNG, GIF, BMP or WebP (TIFF and AVIF no longer open), and Pillow is 13.0.0 on
Python 3.11 and newer: 0.93's Pillow 12.3.0 has published advisories reachable through pictures. Python 3.10 keeps
12.3.0 with the format list. - certifi 2026.10.23: downloads no longer trust a certificate authority whose keys were compromised.
- An update whose package step fails (offline, for example) now starts with the packages already installed and
says so, instead of stopping; the next start tries again. - These change what worked in 0.93: the API-key refusal, the picture URL check, and pictures by file path on a
server that listens on your network.
Models
- New downloads of UD-Q2_K_XL get Unsloth's re-made file (the same quality in our tests); every other file was
already their latest.
Updating from 0.93
- Update as usual (
git pullorUPDATE.bat, or unpack the new ZIP), then double-clickStart DeepSeek.bat. The
first start:- updates the Python packages;
- asks to download the 0.94 engine (under 1 GB);
- asks about the picture reader (0.97 GB, plus PyTorch 124 MB). If you say N it starts text-only, but the question
comes back at every start until you runDisable Pictures.bat; - keeps your drafter. The slightly better one is optional:
setup-ds41-models.bat drafter-imxmakes it (it
downloads 7.9 GB once). If the full-size drafter files are still in your model folder, the first start makes it
from them, with no download; - leaves your model files as they are.
- A ZIP copy: keep your
ds41-paths.bat(copy it back after unpacking), or enter your model folder again when asked.
Fixed
- Speculative sampling is now exact when n-gram lookup and sampled drafts mix (it slightly changed the output
distribution at temperature > 0). - Tool calls: a stray word where the model writes the tool-call marker no longer turns a call into plain answer
text (which ended an agent's run). - Tool calls: parameters are read by the tool's schema, so a number that may also be empty arrives as a number,
and a number in a text parameter stays text. - Streamed tool calls never carry
"name": nullor an emptytool_callslist (OpenCode reportedly failed on
them). - A client that closes the connection right after an answer's last byte no longer has that answer marked as
disconnected. - Windows handle leak: the engine no longer leaks a Windows handle for each short-lived reader thread (7,596 ->
629 handles in a test session). - GPU faults: a GPU fault now ends the engine, and the next request starts a fresh one. Before, every later
request failed until a restart by hand. - GGUF files without
engram.compressed_vocab_size(ISTA's GSQ-RCO files leave it out) load. - Settings and choice files saved as "UTF-8 with BOM" are read as written. Before, such a
delta-settings.json
silently dropped the Setup card's choices. - A broken
pendingentry in the Setup card's settings no longer stops the launcher. - Multi-GPU: a second-card helper that stops or cannot start no longer stops the model: it runs on one card and
the server window says so (a multi-GPU start takes about 2 s longer). - Multi-GPU: the second card must be an RTX 20 or newer (a GTX 1080 Ti or a Tesla P40 made the start fail), and
of two equal cards the one on the wider PCIe link is used. - Pictures: a picture reader that cannot start no longer stops the model; text works, and a picture says why.
Which zip do I download?
| File | Who it's for |
|---|---|
build-ds41-portable.zip |
Almost everyone: Intel 4th gen / AMD Ryzen or newer CPU, NVIDIA RTX 20 / 30 / 40 / 50 card |
build-ds41-compat-avx.zip |
Older CPUs without AVX2 |
build-ds41-compat.zip |
Very old CPUs (slowest) |
SHA256SUMS.txt lists the checksums; Start DeepSeek.bat checks them by itself.
Updating from 0.93? Run UPDATE.bat, then Start DeepSeek.bat