Skip to content

mimo: announce the vision tower at the serve handshake (CAPS) - #1819

Merged
JustVugg merged 1 commit into
devfrom
fix/mimo-caps
Oct 1, 2026
Merged

JustVugg merged 1 commit into
devfrom
fix/mimo-caps

Conversation

@JustVugg

@JustVugg JustVugg commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Since #1793 the gateway lists image among a server's input modalities only when both halves agree: the family has a placeholder expansion, and the engine said CAPS vision=1 at its handshake. MiMo (#1813) has the image path end to end but announced neither half, so /v1/models and /health said ["text"] while pictures were served. Requests with pictures were never refused (the gateway refuses only on an explicit vision=0); only the card under-claimed.

  • family_registry.py: the mimo family carries image=True, and the registry test lists it.
  • mimo.c: serve_loop writes CAPS vision=1 when the tower loaded and vision=0 when the container has none, like deepseek_v41, glm53, qwen36 and qwen38.

Checked

  • On the real MiMo-V2.6 Flash checkpoint, the engine's handshake is READY, CAPS vision=1, STAT ....
  • The gateway from this branch on that engine: /v1/models and /health report "input_modalities": ["text", "image"], and the startup log says input modalities: text, image.
  • tests/test_family_registry.py, tests/test_openai_server.py, tests/test_mimo_chat_template.py and tests/test_chat_thinking.py pass; mimo builds without warnings.

The tiny harness cannot drive serve mode (it needs a tokenizer.json, which the fixture deliberately does not ship), so the handshake was checked on the real checkpoint.

Since #1793 the gateway lists image among a server's input modalities only
when the family has a placeholder expansion and the engine said CAPS
vision=1. MiMo had both halves of the image path but announced neither, so
/v1/models and /health said text only while pictures were served. The
family now carries image=True, and mimo.c writes CAPS vision=1 or 0 from
whether the tower loaded.
@JustVugg
JustVugg merged commit 6444917 into dev Oct 1, 2026
31 checks passed
Xore pushed a commit to Xore/colibri that referenced this pull request Oct 1, 2026
The engine writes HITS and PROF after DONE. The gateway answers the request
as soon as it reads DONE, and its dispatcher reads the two lines a moment
later, so a test that queries /experts right after the reply can see the
empty grid. That is what turned dev red on the merge of JustVugg#1819
(test_dsv41_dashboard: 0 != 12). The qwen36 and glm53 dashboard tests read
the endpoints the same way.

The tests now wait until each endpoint's seq says its line arrived, up to
30 s, then assert as before.
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