v3.25.0
-
dsh: Xiaomi MiMo's text-only models get their
(modlens vision)variants (#80, #82). Auto-discovery's default families now includemimo, but with the gate reversed: only ids carrying a-prosegment (mimo-v2.5-pro,mimo-v2.5-pro-ultraspeed,mimo-v2-pro, and a:free-style qualifier after it) are wrapped. Xiaomi's naming convention — verified against the official model catalog for both the v2 and v2.5 generations — marks bare version ids as native omni models (mimo-v2.5takes text, image, video, and audio) and-proas the text-only flagship, so there is no vision marker in the name to exclude; only the named text subset is safe to include. The bare omni model keeps its native sight, and theasr/tts/voiceclone/voicedesignspeech line falls outside the gate on its own. A declared image modality still vetoes a wrap first, and an explicitfamilieslist keeps the same MiMo gate. Thanks to @MagicSquarekey and @375578951 for the reports. -
dsh: the settings card renders its form immediately instead of waiting out a full local-agent probe (#83). Expanding the card used to fetch
/modlens/config?discover=1, and the route awaited a completedoctor --jsonsweep — every local harness probed, 30-second cap, painfully slow on Windows with.cmdshims and antivirus scanning — before the card showed anything but a spinner. The card now loads in two phases: a plain config fetch renders the engine, key, and model fields at once, and the reuse/auto section fills in lazily when its owndiscover=1request returns, showing its small loading note meanwhile. A collapsed card discards late responses instead of letting them overwrite newer state, re-expanding does not re-probe, a save no longer clobbers a probe that finished after it, and a failed probe falls back to the plain grant list as before. The discovery cache also grows from 60 seconds to 10 minutes, so re-opening the card within that window pays nothing. Thanks to @Ztyss for a report that had already located every link in the chain. -
dsh: repeated
modlens_read_imagecalls reuse one image read (#81). A small host model can emit the same path-tool call repeatedly inside its thinking loop, and every call started a new CLI process because #68 cached attachment conversion but not the explicit tool. The tool now keeps a per-plugin LRU cache keyed by the CLI-normalized source identity and focus prompt. Identical concurrent calls join the same pending read. A changed local file or focus creates a fresh read, remote results expire after 60 seconds, and failures cool for 60 seconds before retrying. Returned evidence is cloned so one consumer cannot mutate the shared result, and the model-facing description explicitly says to call once and reuse the evidence. This prevents repeated tool decisions from becoming repeated vision-provider work. It cannot make a small model stop hallucinating calls or recover reliably from every tool failure, so duplicate call events may remain visible and hosts should still cap tool rounds where available.