- Add call_vision method to all bot implementations (DashScope, Claude,
Gemini, ZhipuAI, MiniMax, Doubao, Moonshot, OpenAICompatibleBot)
using each vendor's native multimodal API format
- Remove call_with_tools/call_vision from Bot base class to fix MRO
shadowing issue with OpenAICompatibleBot mixin
- Refactor vision tool provider resolution: MainModel → other configured
models (auto-discovered) → OpenAI → LinkAI, with automatic fallback
- Return actual model name used in call_vision responses
- Sync config.json API keys to .env bidirectionally on startup
- Fix bot instance cache to detect bot_type/use_linkai config changes
- Add SSE reconnection support for web console
- Preserve image path hints in Gemini text for correct vision tool calls
- Update docs/tools/vision.mdx
- Rename ZHIPU_AI bot type from glm-4 to zhipu to avoid confusion with model names
- Add bot_type persistence in web config to fix provider dropdown resetting on refresh
- Change OpenAI provider key to chatGPT to match bot_factory routing
- Add DEEPSEEK constant and route it to ChatGPTBot (OpenAI-compatible API)
- Keep backward compatibility for legacy bot_type glm-4 in bot_factory
- Fix re.sub bad escape error on Windows paths by using lambda replacement
- Remove unused pydantic import in minimax_bot.py
Made-with: Cursor