- Add MiniMax-M3 to the model selection list (set as new default at top)
- Retain MiniMax-M2.7 and MiniMax-M2.7-highspeed
- Remove deprecated MiniMax-M2.5 / M2.5-highspeed
- Update supportsImageInput: M3 supports image input (M2.x stay text-only)
- Update unit tests to reflect new model lineup
- Update example AI_MODEL in CN/EN/JA docs to MiniMax-M3
Co-authored-by: octo-patch <octo-patch@github.com>
Kimi thinking models (e.g. kimi-k2.6) return reasoning_content in their
responses. The previous createOpenAI-based implementation silently ignored
this field, so reasoning was never captured or replayed in subsequent turns.
Switching to createDeepSeek (which natively understands reasoning_content)
ensures that reasoning context is preserved across conversation turns,
resolving the "cannot interact a second time" error with Kimi k2.6.
This mirrors the existing doubao provider pattern, which already uses
createDeepSeek for kimi-based models routed through Doubao.
Co-authored-by: octo-patch <octo-patch@github.com>
When ACCESS_CODE_LIST is configured on the server, the settings dialog
was not showing the access code input field in two cases:
1. Stale localStorage cache: if a user had previously visited without
ACCESS_CODE_LIST enabled, the cached value of accessCodeRequired=false
would be used indefinitely, hiding the password input.
2. Race condition on first visit: the dialog could open triggered
by an auth error before the async fetch to /api/config completed,
showing a blank settings dialog with no access code field.
Fix by re-fetching /api/config whenever the dialog opens (on open
change) instead of only once on mount with a cache guard. The cached
value in localStorage is still updated on success, keeping the fast
initial render intact while ensuring the dialog always reflects the
server configuration.
Fixes#811
Co-authored-by: octo-patch <octo-patch@github.com>
QvQ models (e.g. qvq-72b-preview, qvq-max) are visual reasoning models
from the Qwen family that support image input. When accessed via providers
that prefix model names with 'qwen/' (e.g., OpenRouter), these models
contain 'qwen' in their ID but lack the 'vl' or 'vision' indicator.
This caused supportsImageInput() to incorrectly return false for model
IDs like 'qwen/qvq-72b-preview', blocking image uploads for vision-capable
models.
Add 'qvq' as an explicit exception in the Qwen text-model check so that
QvQ models are correctly allowed to receive image input regardless of the
provider prefix.
Co-authored-by: octo-patch <octo-patch@github.com>
Qwen3.5 models deployed via vLLM natively support image input, but the
supportsImageInput() check was incorrectly blocking them. The function
only exempted qwen3.5-plus and qwen3.5-flash variants, missing the base
qwen3.5 model name.
Simplify the exception to cover all qwen3.5 variants with a single
substring check on "qwen3.5", since it is a common prefix of all three.
Co-authored-by: octo-patch <octo-patch@github.com>
* fix: merge system messages for custom OpenAI endpoints (fixes#734)
When using the OpenAI provider with a custom base URL (e.g., vLLM, LMStudio),
the app sends two system messages to the API. Open-source model chat templates
(Qwen, Llama, etc.) enforce that system messages must appear at the beginning
and reject multiple system message blocks, causing the error:
'System message must be at the beginning.'
Treat custom OpenAI endpoints (client-provided base URL or OPENAI_BASE_URL env
var) the same as other known single-system providers by merging both system
messages into one before sending.
* fix: also detect custom OpenAI endpoint from serverModelConfig.baseUrlEnv
---------
Co-authored-by: dayuan.jiang <jdy.toh@gmail.com>
- Add MiniMax-M2.7 and MiniMax-M2.7-highspeed to model list
- Set MiniMax-M2.7 as default model
- Keep all previous models as alternatives
- Update docs in EN/CN/JA
Co-authored-by: PR Bot <pr-bot@minimaxi.com>