Skip to content

feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers#13099

Merged
GeorgeDong32 merged 18 commits intomainfrom
feat/minimax-ima-apps
Mar 12, 2026
Merged

feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers#13099
GeorgeDong32 merged 18 commits intomainfrom
feat/minimax-ima-apps

Conversation

@GeorgeDong32
Copy link
Copy Markdown
Collaborator

@GeorgeDong32 GeorgeDong32 commented Feb 27, 2026

What this PR does

Before this PR:

  • Mini apps lacked MiniMax Agent and IMA mini apps
  • Long miniapp names could truncate awkwardly
  • Missing AI providers: MiniMax Global and Z.ai

After this PR:

New Mini Apps:

  • Add MiniMax Agent (CN: agent.minimaxi.com) and MiniMax Agent Global (agent.minimax.io)
  • Add IMA mini app (ima.qq.com)
  • Optimize IMA icon with SVG format and proper styling
  • Fix MiniMax Agent display name and add i18n entries

New AI Providers:

  • Add MiniMax Global provider with full model support (M2.5, M2.1, M2 series)
  • Add Z.ai provider with GLM model support (GLM-5, GLM-4.7, GLM-4.6 series)

UI Improvements:

  • Integrate MarqueeText component for long miniapp names to prevent awkward truncation
  • Update z.ai mini app icon to SVG format with cleaner styling
  • Change Hailuo display name from "MINIMAX" to "Hailuo" for clarity

Fixes #

Implementation Details

Tradeoffs:

  • Chose MarqueeText component for scrolling titles instead of custom implementation to ensure consistency with existing UI patterns

Technical Changes:

  • Replace PNG icons with optimized SVG variants (ima.svg, zai.svg)
  • Add proper supportedRegions configuration for regional availability
  • Update model configurations in default.ts with complete model lists

Breaking changes

None expected.

Special notes for your reviewer

  • Verify scrolling behavior for long miniapp names in various locales
  • Confirm MiniMax Global and Z.ai provider API endpoints are correct
  • Check IMA and MiniMax Agent icons render properly in both light/dark themes
  • Ensure Hailuo/MiniMax naming is consistent across the UI

Release note

Added MiniMax Agent, MiniMax Agent Global, and IMA mini apps
Added MiniMax Global and Z.ai AI providers
Improved long miniapp name display with MarqueeText component

@GeorgeDong32 GeorgeDong32 changed the title feat/minimax-ima-apps feat(miniapp): add minimax & ima Feb 27, 2026
@GeorgeDong32 GeorgeDong32 marked this pull request as ready for review February 27, 2026 14:24
Copy link
Copy Markdown
Collaborator

@EurFelux EurFelux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! Adding MiniMax Agent and IMA mini apps is a nice addition. Here's a summary of my review:

Critical

  1. Migration version not bumpedstore/index.ts still has version: 199, so migration 200 will never execute. This is a must-fix.

Important

  1. zai.svg bloat — The SVG has ~195 unused CSS classes from Adobe Illustrator export. Should be cleaned up to ~15 lines.
  2. Character-count-based scroll threshold — Using displayName.length > 14 doesn't account for varying character widths (CJK vs Latin). A ref-based measurement would be more reliable.

Suggestions

  1. Always-running scroll animation — Consider hover-only scrolling to avoid visual noise in a grid of 20+ apps.
  2. Hailuo naming — The en-us translation still shows "MINIMAX" for the Hailuo entry, which may confuse users alongside the new "Minimax Agent" entries.
  3. Hailuo region changesupportedRegions changed from ['CN'] to ['CN', 'Global'] without mention in the PR description.

Comment on lines +48 to +50
const isOpened = openedKeepAliveMinapps.some((item) => item.id === app.id)
const { isTopNavbar } = useNavbarPosition()

// Calculate display name and whether it needs scrolling (length > 14)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

GeorgeDong32 added a commit that referenced this pull request Mar 3, 2026
- Fix Hailuo supportedRegions to ['CN'] only
- Clean up zai.svg redundant CSS classes
- Fix hover scroll animation using animation-play-state
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from ef7056a to 5ab63ef Compare March 3, 2026 05:47
GeorgeDong32 added a commit that referenced this pull request Mar 3, 2026
- Fix Hailuo supportedRegions to ['CN'] only
- Clean up zai.svg redundant CSS classes
- Fix hover scroll animation using animation-play-state
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from 5ab63ef to 779feae Compare March 3, 2026 05:49
@DeJeune DeJeune requested a review from EurFelux March 3, 2026 06:46
Copy link
Copy Markdown
Collaborator

@EurFelux EurFelux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-global and zai providers
  • The minimaxhailuo migration

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.

@GeorgeDong32 GeorgeDong32 marked this pull request as draft March 3, 2026 09:54
GeorgeDong32 added a commit that referenced this pull request Mar 3, 2026
- Fix Hailuo supportedRegions to ['CN'] only
- Clean up zai.svg redundant CSS classes
- Fix hover scroll animation using animation-play-state
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from 0e8a1d3 to b0e9727 Compare March 3, 2026 16:08
@GeorgeDong32 GeorgeDong32 changed the title feat(miniapp): add minimax & ima feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers Mar 4, 2026
@GeorgeDong32 GeorgeDong32 marked this pull request as ready for review March 4, 2026 03:02
@GeorgeDong32 GeorgeDong32 requested a review from EurFelux March 4, 2026 03:03
@DeJeune
Copy link
Copy Markdown
Collaborator

DeJeune commented Mar 4, 2026

Note

This issue/comment/review was translated by Claude.

Should we wait for #12858 to be merged, and then submit a PR based on #11420?


Original Content

#12858 要不要等这个合了之后,基于 #11420 提个PR

@DeJeune
Copy link
Copy Markdown
Collaborator

DeJeune commented Mar 4, 2026

Note

This comment was translated by Claude.

After #12858, I can push my local code for #11420


Original Content

#12858 之后,我 #11420 本地的代码才能推上去

GeorgeDong32 added a commit that referenced this pull request Mar 4, 2026
- Fix Hailuo supportedRegions to ['CN'] only
- Clean up zai.svg redundant CSS classes
- Fix hover scroll animation using animation-play-state
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from b0e9727 to 6f8a80e Compare March 4, 2026 05:43
@GeorgeDong32
Copy link
Copy Markdown
Collaborator Author

GeorgeDong32 commented Mar 4, 2026

Note

This comment was translated by Claude.

Should I merge it first? @DeJeune


Original Content

那我先合并了? @DeJeune

GeorgeDong32 added a commit that referenced this pull request Mar 7, 2026
- Fix Hailuo supportedRegions to ['CN'] only
- Clean up zai.svg redundant CSS classes
- Fix hover scroll animation using animation-play-state
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from 6f8a80e to 391357d Compare March 7, 2026 10:55
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from c335c7e to 3bc5544 Compare March 8, 2026 11:32
GeorgeDong32 added a commit that referenced this pull request Mar 10, 2026
- Fix Hailuo supportedRegions to ['CN'] only
- Clean up zai.svg redundant CSS classes
- Fix hover scroll animation using animation-play-state
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from 3bc5544 to 8593f77 Compare March 10, 2026 04:21
…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
@DeJeune DeJeune added this to the v1.7.25 milestone Mar 10, 2026
@DeJeune DeJeune added the ready-to-merge This PR has sufficient reviewer approvals but is awaiting code owner approval. label Mar 10, 2026
@GeorgeDong32 GeorgeDong32 force-pushed the feat/minimax-ima-apps branch from 8593f77 to 8edf3fe Compare March 11, 2026 15:27
@kangfenmao
Copy link
Copy Markdown
Collaborator

Merge after conflict is resolved @GeorgeDong32

GeorgeDong32 and others added 2 commits March 12, 2026 15:25
Combine PR's minimax/zai migration with main's grok type change
in migrate 200 to resolve merge conflict.
@GeorgeDong32
Copy link
Copy Markdown
Collaborator Author

Done

@GeorgeDong32 GeorgeDong32 merged commit 2ff1501 into main Mar 12, 2026
7 checks passed
@GeorgeDong32 GeorgeDong32 deleted the feat/minimax-ima-apps branch March 12, 2026 10:32
@kangfenmao kangfenmao mentioned this pull request Mar 13, 2026
6 tasks
kangfenmao added a commit that referenced this pull request Mar 13, 2026
### 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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR has sufficient reviewer approvals but is awaiting code owner approval.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants