feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers#13099
feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers#13099GeorgeDong32 merged 18 commits intomainfrom
Conversation
033b554 to
5854e7a
Compare
5854e7a to
6f27958
Compare
EurFelux
left a comment
There was a problem hiding this comment.
Thanks for the PR! Adding MiniMax Agent and IMA mini apps is a nice addition. Here's a summary of my review:
Critical
- Migration version not bumped —
store/index.tsstill hasversion: 199, so migration 200 will never execute. This is a must-fix.
Important
zai.svgbloat — The SVG has ~195 unused CSS classes from Adobe Illustrator export. Should be cleaned up to ~15 lines.- Character-count-based scroll threshold — Using
displayName.length > 14doesn't account for varying character widths (CJK vs Latin). Aref-based measurement would be more reliable.
Suggestions
- Always-running scroll animation — Consider hover-only scrolling to avoid visual noise in a grid of 20+ apps.
- Hailuo naming — The en-us translation still shows "MINIMAX" for the Hailuo entry, which may confuse users alongside the new "Minimax Agent" entries.
- Hailuo region change —
supportedRegionschanged from['CN']to['CN', 'Global']without mention in the PR description.
| const isOpened = openedKeepAliveMinapps.some((item) => item.id === app.id) | ||
| const { isTopNavbar } = useNavbarPosition() | ||
|
|
||
| // Calculate display name and whether it needs scrolling (length > 14) |
There was a problem hiding this comment.
Issue: Character-count threshold doesn't account for varying character widths
Using displayName.length > 14 as the scroll threshold is unreliable because:
- CJK characters (e.g. "MiniMax Agent 海外版") are approximately 2x wider than Latin characters
- Even among Latin characters, "W" and "i" have very different widths in non-monospace fonts
This means some names that visually fit within 80px will scroll unnecessarily, while others that overflow won't scroll.
Suggested alternative: Use a ref + useLayoutEffect to measure the actual rendered width of the text, and compare it against the container's clientWidth. Something like:
const textRef = useRef<HTMLSpanElement>(null)
const containerRef = useRef<HTMLDivElement>(null)
const [shouldScroll, setShouldScroll] = useState(false)
useLayoutEffect(() => {
if (textRef.current && containerRef.current) {
setShouldScroll(textRef.current.scrollWidth > containerRef.current.clientWidth)
}
}, [displayName])This gives pixel-accurate overflow detection regardless of font or language.
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
ef7056a to
5ab63ef
Compare
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
5ab63ef to
779feae
Compare
EurFelux
left a comment
There was a problem hiding this comment.
Thanks for addressing the previous review feedback — migration version bump, SVG optimization, and hover-only animation are all good improvements!
However, the scrolling title feature should be separated into its own PR. This PR's scope should be limited to:
- Adding MiniMax Agent (CN + Global) and IMA mini apps
- Adding
minimax-globalandzaiproviders - The
minimax→hailuomigration
The scrolling title mechanism needs a different detection approach (IntersectionObserver or ResizeObserver instead of character count), and deserves focused review as a standalone UX feature.
One additional nit: providers/zai.svg still carries ~195 unused CSS classes from Adobe Illustrator export — would be nice to clean up for consistency with the already-optimized apps/zai.svg.
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
0e8a1d3 to
b0e9727
Compare
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
b0e9727 to
6f8a80e
Compare
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
6f8a80e to
391357d
Compare
c335c7e to
3bc5544
Compare
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
3bc5544 to
8593f77
Compare
…app names and render a scrolling title so labelsdo not truncate awkwardly. Compute a displayName and a booleanshouldScroll (length >14), pass it to AppTitle, and wrap thelabel in a span. Update styled component to accept $shouldScroll prop and applyoverflow, max-width and an animation that scrolls the inner textwhen needed. This preserves layout while making long names readable.
- Fix stroke-width in ima.svg (Chinese period -> English period) - Extract MIN_APP_NAME_MAX_LENGTH, SCROLL_ANIMATION_DURATION, APP_TITLE_MAX_WIDTH constants
- Fix Hailuo supportedRegions to ['CN'] only - Clean up zai.svg redundant CSS classes - Fix hover scroll animation using animation-play-state
- Add useState for hover state management - Add onMouseEnter/Leave handlers to Container - Pass isHovered prop to AppTitle for scroll trigger
8593f77 to
8edf3fe
Compare
|
Merge after conflict is resolved @GeorgeDong32 |
Combine PR's minimax/zai migration with main's grok type change in migrate 200 to resolve merge conflict.
|
Done |
### What this PR does Before this PR: - Version is 1.7.24 After this PR: - Version is 1.7.25 - Release notes updated in `electron-builder.yml` ### Why we need it and why it was done in this way Standard release workflow: collect commits since v1.7.24, generate bilingual release notes, bump version. The following tradeoffs were made: N/A The following alternatives were considered: N/A ### Breaking changes **Action Required**: The built-in filesystem MCP server now requires manual approval for write/edit/delete operations by default. ### Special notes for your reviewer **Included commits since v1.7.24:** ✨ New Features: - feat(websearch): add Querit search provider (#13050) - feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers (#13099) - feat(provider): add agent support filter for provider list (#11932) - feat(agent): add custom environment variables to agent configuration (#13357) - feat: add GPT-5.4 support (#13293) - feat(gemini): add thought signature persistence (#13100) 🐛 Bug Fixes: - fix: secure built-in filesystem MCP root handling (#13294) - fix: check underlying tool permissions for hub invoke/exec (#13282) - fix: remove approval countdown timers and add system notifications (#13281) - fix: agent tool status not stopping on abort (#13111) - fix: resolve spawn ENOENT on Windows for Code Tools (#13405) - fix: Use default assistant for topic auto-renaming (#13387) - fix(backup): defer auto backup during streaming response (#13307) - fix(ui): fix Move To submenu overflow (#13399) - fix: render xml fenced svg blocks as svg previews (#13431) - fix: correct Gemini reasoning params (#13388) - fix: improve Qwen 3.5 reasoning model detection (#13235) - fix: upgrade xAI web search to Responses API (#12812) - fix(api-server): relax chat completion validation (#13279) - fix: install or uninstall button state issues (#13114) - fix: improve update dialog behavior (#13363) - fix: auto-convert reasoning_effort to reasoningEffort (#12831) ### Checklist - [x] PR: The PR description is expressive enough and will help future contributors - [x] Code: Write code that humans can understand and Keep it simple - [x] Refactor: You have left the code cleaner than you found it (Boy Scout Rule) - [x] Upgrade: Impact of this change on upgrade flows was considered and addressed if required - [x] Documentation: A user-guide update was considered and is present (link) or not required. - [x] Self-review: I have reviewed my own code before requesting review from others ### Release note ```release-note See release notes in electron-builder.yml ``` --------- Signed-off-by: kangfenmao <[email protected]>
What this PR does
Before this PR:
After this PR:
New Mini Apps:
agent.minimaxi.com) and MiniMax Agent Global (agent.minimax.io)ima.qq.com)New AI Providers:
UI Improvements:
MarqueeTextcomponent for long miniapp names to prevent awkward truncationFixes #
Implementation Details
Tradeoffs:
MarqueeTextcomponent for scrolling titles instead of custom implementation to ensure consistency with existing UI patternsTechnical Changes:
supportedRegionsconfiguration for regional availabilitydefault.tswith complete model listsBreaking changes
None expected.
Special notes for your reviewer
Release note