Commit graph

5857 commits

Author SHA1 Message Date
Deepshekhar Das
7bae773f15
Merge c4a896224c into c1c536297f 2026-10-12 08:47:43 +02:00
Jeffrey Morgan
c1c536297f mlx: read candidate logits in float32 for quantized heads 2026-10-11 23:25:23 -07:00
Jeffrey Morgan
80cedab044 mlx: clip long laya states instead of rejecting them 2026-10-11 23:25:23 -07:00
Jeffrey Morgan
0c21bcf0ac llm: support multimodal embeddings through llama-server 2026-10-11 23:25:23 -07:00
Jeffrey Morgan
adc4aae9d6 llama: update to b11521 and use native decision support 2026-10-11 23:25:23 -07:00
Jeffrey Morgan
1ba3c76bd4 decision: align request validation and option descriptions 2026-10-11 23:25:23 -07:00
Jeffrey Morgan
eab97e9f92
server: skip local model compatibility migration (#18908) 2026-10-09 10:36:11 -07:00
Eva H
021cda5228
launch: suppress Claude Code connector warning for Ollama (#18878)
Co-authored-by: Parth Sareen <parth.sareen@ollama.com>
2026-10-09 11:04:07 -04:00
deepshekhardas
c4a896224c docs: fix PowerShell casing in troubleshooting guide 2026-10-09 12:23:14 +05:30
Eva H
c2b7368d41
launch: avoid inherited service-tier warnings in Codex (#18879) 2026-10-08 16:18:09 -04:00
J Berg
b061384d90
Merge pull request #18855 from ollama/launch-claude-max-context-tokens: Set CLAUDE_CODE_MAX_CONTEXT_TOKENS to model's context length
Set CLAUDE_CODE_MAX_CONTEXT_TOKENS to model's context length
2026-10-08 10:44:45 -07:00
Jonathan Berg
0c7340b4bb respect CLAUDE_CODE_AUTO_COMPACT_WINDOW user setting 2026-10-08 10:33:11 -07:00
Daniel Hiltgen
531946e996
server: hide duplicate and downgrade guards from list (#18874)
When a legacy GGUF which requires our llama.cpp patch set is loaded, we do a
lazy conversion on disk to make it llama.cpp compatible.  To support
downgrades, we temporarily hold both the new and old GGUFs and create a shadow
v1 manifest tag to prevent the downgraded server from deleting the new blobs.
Showing these in the list output is confusing to users and API consumers.  The
legacy copies will be removed in a future release to recover the disk space.
2026-10-08 08:54:06 -07:00
Jonathan Berg
c77b81c503 Set CLAUDE_CODE_MAX_CONTEXT_TOKENS to whatever the models context window is 2026-10-07 16:09:35 -07:00
Anna Rahn
e3cddc3e89
Merge pull request #18739 from maziluiosif/add-oxi
README: add oxi to community integrations
2026-10-07 15:41:02 -07:00
Daniel Hiltgen
cf2a313a29
mlx: drop carried metal residency patch now that it is upstream (#18854) 2026-10-07 15:22:54 -07:00
Anna Rahn
f9f4af6ce0
Merge pull request #18233 from chenlichao/fix/app-readme-download-links
docs: fix broken download links in app README
2026-10-07 13:34:52 -07:00
Anna Rahn
a742c063ae
Merge pull request #18814 from aniketkrs/docs/readme-dead-links
docs: fix 6 dead links in README community integrations list
2026-10-07 13:21:56 -07:00
Daniel Hiltgen
a896fdf01c
manifest: avoid symlinks on Windows (#18852)
Store named manifests as regular files on Windows, where symlinks can
be created successfully but fail when opened.

Repair existing symlinks lazily on read using the verified blob and
existing copy path. Keep locking consistent across platforms and avoid
reacquiring the store lock during pruning.

Fixes #18847
2026-10-07 12:53:35 -07:00
Eva H
468e7e5008
cmd: remove account step from CLI onboarding (#18826) 2026-10-07 13:51:57 -04:00
Gigrise
d3c846f8b0
llama: fix clef head reads past 2GiB on windows (#18777)
The Clef head read its weights with std::ifstream::seekg. The Windows
llama-server ships with libc++ 18.1.8, where that seek truncates the
offset to 32 bits. clef-flash stores the clef.* tensors at about 9.5GB,
so the head loaded backbone bytes as its weights and every
/v1/systemone request failed with "Clef: non-finite logit". clef:27b
keeps the head and output.weight below 2GB and was unaffected.

Read with ggml_fopen and an explicit 64-bit seek instead, as read_at
in llama/compat already does.

Fixes #18769
2026-10-06 21:39:34 -07:00
Devon Rifkin
f864601538
server: proxy cloud usage and balance APIs (#18829)
Forward GET /api/usage and GET /api/balance through the local server
using the signed-in account.

Add API documentation and tests for proxying, signing, and
disabled cloud access.
2026-10-06 18:31:54 -07:00
Patrick Devine
0d0720e51f
routes: fix embed 413 vs 400 routing (#18822) 2026-10-06 10:46:39 -07:00
Patrick Devine
efe43c5561
model: add multimodal embeddings (#18820)
Implements the EmbeddingGemma2Model architecture on the MLX runner: 24-layer
bidirectional text encoder with PLE, shared gemma4 vision/audio towers,
mean-pool + L2 output. /api/embed accepts per-item media via input dicts.
2026-10-06 08:08:38 -07:00
Aniket Kumar
03ed9ce44d docs: fix 6 dead links in README community integrations list 2026-10-06 09:55:53 +05:30
Daniel Hiltgen
8a971df3ba
mlx: fix patch for recent mlx update (#18812) 2026-10-05 18:15:59 -07:00
Daniel Hiltgen
18846f8a9b
MLX: version bump (#18720)
* MLX: version bump

* add scopes for unit tests to reduce memory usage
2026-10-05 17:41:51 -07:00
Daniel Hiltgen
ec318f4d11
llama.cpp: version update (#18761) 2026-10-05 17:38:50 -07:00
Daniel Hiltgen
1970ce82a3 Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-10-05 17:35:11 -07:00
Daniel Hiltgen
d9dec1509d
Reduce model lookup and MLX decision request overhead (#18806)
* Reduce model lookup and MLX decision request overhead

Avoid decoding unrelated manifests when resolving existing model names.
Reuse small Metal scratch buffers between decision requests, releasing
larger working sets and clearing scratch after scoring errors.

* address comments
2026-10-05 17:34:41 -07:00
Daniel Hiltgen
cf6c9de620
mlx: mitigate high latency after GPU idle (#18807)
Carry the MLX residency-refresh patch and enable it every second in the
runner, preserving explicit environment overrides.

Fixes #18744.
2026-10-05 16:49:32 -07:00
Daniel Hiltgen
e363843b83
test: split create integration tests out (#18470)
The create tests upload blobs which can cause problems when run in parallel on multiple systems.  This change splits them out with an explicit tag to make it easier to control when they are run.
2026-10-05 15:01:48 -07:00
Dongluo Chen
ec8e5a4dcd
Merge pull request #18722 from ollama/openai-tool-array-content 2026-10-05 14:54:40 -07:00
Daniel Hiltgen
991421d4db
pull: allow RCs to pull matching min_version (#18790)
Strip off pre-release from the version string so RCs can pull
models for the same release.
2026-10-04 16:15:37 -07:00
Daniel Hiltgen
0fde06c4d2 Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-10-04 08:48:45 -07:00
Daniel Hiltgen
195f4cdca1
mlx: match publisher tokenizer semantics (#18779)
* mlx: match publisher tokenizer semantics

Honor pretokenizer stage order, split behavior, Unicode boundaries,
added-token normalization, and ranked BPE merges. Handle empty added
tokens and empty Metaspace input consistently.

Add shared Go/Python reference cases using published tokenizers, pulling
missing models directly and failing on errors, plus focused regressions
for configuration precedence, byte fallback, and parallel encoding.

* address comments
2026-10-04 07:45:15 -07:00
Daniel Hiltgen
27a36513d2
mlx: Decision model improvements (#18776)
* reject instead of truncate on overflow

* tune route logic for faster warm runner lookup
2026-10-03 17:48:08 -07:00
Daniel Hiltgen
a00d083bb5
mlx: System one support (#18701)
* mlxrunner: restore System One scoring

Carry the MLX implementation and its tests from the original System One
commit. The API/compiler and llama-server implementation already exist on
the release branch, so retain those versions. Adapt the optional model test
to the renamed decision package and its explicit rendering/context setup.

(cherry picked from commit 26e546ddb3)

* Enable MLX System One and add regression coverage

* mlxrunner: add Laya support for System One

Import Laya checkpoints and implement bidirectional decision scoring.

* mlxrunner: release cached buffers after System One scoring

* decision: match Tev1 and Nimble publisher prompt formats

Select Tev1 prompts using renderer metadata and fix JSON formatting, with regression coverage for GGUF and MLX.

* mlx: support Clef and Clef Flash decision models

Add model import, quantization safeguards, and text/image scoring with the Clef joint decision head.

* support vision capabilities for decision models

* Make Clef scoring cancellable between prefill chunks

Preserve joint-head inputs and test cancellation, cleanup, and recovery.

* mlx: separate decision preparation and readout from forward

Let serial and batched scoring share model-owned preparation and readout
without duplicating architecture-specific logic in the runner.

* mlx: add Strands Decider support

* implement caching

---------

Co-authored-by: ParthSareen <parth.sareen@ollama.com>
2026-10-03 13:17:21 -07:00
Dong Chen
31547a6cd7 openai: split tool results with images instead of adding [img] markers
The [img] placeholders mixed internal markers into tool text: the native
llama-server path sends them as literal text, so an image-only result
gained a text part, and tool output containing [img] or [img-N] moved or
dropped image tags. api.Message cannot carry image positions without
in-band markers, so stop merging tool results that include images.

Text-only tool results, the only array form the Chat Completions spec
allows for tool messages, are still merged into one message (now with a
strings.Builder). Results with images keep the per-part split in order,
which preserves image positions, with the tool call id and name set on
every part.
2026-10-02 20:41:11 -07:00
Parth Sareen
42e911bc3d
docs: document image input for decision models (#18757) 2026-10-02 11:52:27 -07:00
Parth Sareen
e896a52a4f
docs: link to available decision models (#18758) 2026-10-02 11:51:55 -07:00
Dong Chen
bea35c8984 openai: keep image positions when merging tool result parts
Merging a tool result's parts collected its images separately from the
text, so renderers placed them all before the text: "Before: <A> After:
<B>" rendered as "<A><B>Before: After:". Write an [img] placeholder at
each image's position so renderContentWithImageTags and chatPrompt put
each image back where it was.
2026-10-01 20:19:01 -07:00
Daniel Hiltgen
b0c1ca4f75
ci: fix missing build context (#18742) 2026-10-01 18:05:01 -07:00
Daniel Hiltgen
1c345795ab Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-10-01 16:51:30 -07:00
Jeffrey Morgan
e4c0d18eb8
models: add clef support (#18741) 2026-10-01 15:52:04 -07:00
manu
c3ef383b58 README: add oxi to community integrations 2026-10-01 23:55:12 +03:00
Daniel Hiltgen
3b1999d1d9
server: report only decision capability for decision models (#18737)
Show and list now return just "decision" for models declaring it, so clients don't offer them for general chat, tools, or thinking. The show response also omits the thinking field for these models. Scheduling and serving still check the full capability set.
2026-10-01 13:49:46 -07:00
Dong Chen
77cef85de4 openai: keep empty tool results sent as an empty content array
A tool message with "content": [] produced no message at all, so the
tool call it answers had no result in the rendered prompt. Emit an empty
tool message that keeps its ToolCallID and ToolName, and skip it only
when it has no parts, call id, or name.
2026-10-01 10:59:10 -07:00
Dong Chen
de119ea47f openai: keep tool message content parts in one message
FromChatRequest splits array content into one api.Message per part. That
is intended for user content, but a tool message is a single result: the
split also dropped its tool_call_id and tool name, since those were only
copied when the message had tool_calls. Renderers that resolve tool
results by ID then see extra, unnamed results; for example, Kimi K3 fails
with "tool message 2 has no resolvable tool name" on a tool result with
two text parts, which the OpenAI spec allows.

Merge the parts of a tool message into one message with the text joined,
the images kept, and ToolCallID and ToolName set, matching how
function_call_output items are converted for /v1/responses.
2026-09-30 13:02:51 -07:00
Parth Sareen
1abe35e6e6
docs: document System One API (#18702) 2026-09-29 19:33:23 -07:00