Skip to content

Feat/UI math rendering#174

Merged
primoco merged 3 commits into
mainfrom
feat/ui-math-rendering
Jun 6, 2026
Merged

Feat/UI math rendering#174
primoco merged 3 commits into
mainfrom
feat/ui-math-rendering

Conversation

@primoco

@primoco primoco commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

primoco added 3 commits June 6, 2026 12:49
… model

Symptom: a user who pulled gemma-4-12b before the catalog gained
mmproj_repo/mmproj_filename ended up with the GGUF on disk but no
multimodal projector. Subsequent `eullm pull gemma-4-12b` short-circuited
on "already downloaded" and `eullm run --image` failed with
"Multimodal not configured: load the model with a valid mmproj_path".
The only workaround was to delete the model and re-download ~7 GB.

Two small changes, no public API change:

* Extract the existing mmproj download flow from cmd_pull into a
  `download_mmproj(entry, model_dir)` helper, idempotent: if the file is
  already on disk, return its name without redownloading. Caller behaviour
  for the first pull is unchanged.
* In the "already downloaded" branch of cmd_pull, if the catalog declares
  an mmproj and `store.mmproj_path` finds none, call the helper and update
  the manifest's mmproj_file field so `list`/`run` see the recovery on
  subsequent runs.

clippy clean (CI flags), 25 tests pass.
Gemma 4 E4B was released in March 2026 as part of the original Gemma 4
family — its multimodal projector uses the pre-unified projector type
that is already supported by llama-cpp-2 v0.1.146. Unlike the 12B
Unified variant (June 3 2026, new `gemma4uv` projector that requires an
upstream bump we don't have yet), E4B is the right immediate target for
testing the EULLM multimodal pipeline on the current binary.

Add mmproj_repo/mmproj_filename pointing at unsloth/gemma-4-E4B-it-GGUF
mmproj-F16.gguf (990 MB) and update the description + tags accordingly.
License remains Apache 2.0.
The 0.6.0-beta.* series was bumped to ship Gemma 4 12B Unified vision via
the new mtmd path. Upstream llama-cpp-2 (v0.1.146, 30 Apr 2026) is still
two months behind the llama.cpp commits that add the `gemma4uv` projector
(merged 3-4 Jun 2026 as PRs #24077, #24082, #24091). Until utilityai bumps
the wrapper crate, that specific model cannot load on our binary.

Rather than ship 0.6.0 stable without the headline feature that motivated
its existence, release the accumulated fixes as a 0.5.x patch and keep the
0.6.0 milestone for when the upstream bump arrives and Gemma 4 12B Unified
actually works end-to-end.

Stable contents 0.5.20:
- UI: Markdown-lite (headings, lists, bold, italic, hr, blockquote) +
  best-effort LaTeX→MathML rendering with orphan \frac/\sqrt recovery
  and tightened spacing.
- UI/engine: Gemma 4 channel-thought block surfaced as Reasoning section.
- Engine: catalog id used as the single addressable model name across
  /api/tags, /v1/models, `eullm list`, and the picker.
- Engine: picker tags catalog entries already pulled with `[local]`.
- Engine: `eullm pull` recovers a missing mmproj for an already-downloaded
  catalog model.
- Catalog: gemma-4-e4b marked vision-capable (pre-unified projector type,
  works with the current llama-cpp-2).
- CI: multimodal (mtmd) enabled in the Windows CUDA release binary.

Known gap (tracked, will be the 0.6.0 milestone):
- Gemma 4 12B Unified vision is pending the upstream llama-cpp-2 bump to
  a llama.cpp commit including PR #24077+.
@primoco primoco merged commit acf225f into main Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant