Skip to content

feat(minimax): beta MiniMax provider support (v2.10.2)#8

Open
prakersh wants to merge 3 commits intomainfrom
feat/minimax-beta-2.10.2
Open

feat(minimax): beta MiniMax provider support (v2.10.2)#8
prakersh wants to merge 3 commits intomainfrom
feat/minimax-beta-2.10.2

Conversation

@prakersh
Copy link
Contributor

@prakersh prakersh commented Feb 18, 2026

Summary

  • add beta MiniMax provider support end-to-end (config, API client/types, store schema, tracker, agent lifecycle, web handlers, dashboard UI)
  • add MiniMax support to the mock engine (fixtures, mock server, standalone mockserver cmd) with rotating scenario responses
  • add MiniMax env wiring in .env.example and .env.docker.example
  • bump VERSION to 2.10.2
  • fix Docker workflow so manual dispatch can publish a beta-tag image from PR branches

What was implemented

  • Endpoint: GET https://www.minimax.io/v1/api/openplatform/coding_plan/remains
  • Auth: Authorization: Bearer <MINIMAX_API_KEY>
  • Response parsing aligned to issue sample (model_remains, start_time, end_time, remains_time, current_interval_total_count, current_interval_usage_count)
  • Reset-cycle tracking for rolling windows using window boundary changes + usage-drop fallback
  • Provider support for provider=minimax and provider=both in current/history/summary/insights/cycles/cycle-overview

Temporary beta Docker image (ready to use)

Published from this PR branch via workflow dispatch:

Pull and run:

docker pull ghcr.io/onllm-dev/onwatch:v2.10.2-beta.1

docker run --rm -p 9211:9211 \
  -e MINIMAX_API_KEY="<your_key>" \
  ghcr.io/onllm-dev/onwatch:v2.10.2-beta.1

If your org/package visibility is private, authenticate first:

echo "<gh_token_with_read:packages>" | docker login ghcr.io -u <github_user> --password-stdin

Beta validation guide (for testers)

1) Run with a real MiniMax key

export MINIMAX_API_KEY="<your_key>"
go run . --debug

Open http://localhost:9211?provider=minimax.

2) Validate API response manually

curl --location 'https://www.minimax.io/v1/api/openplatform/coding_plan/remains' \
  --header 'Authorization: Bearer <API Key>' \
  --header 'Content-Type: application/json'

Expected fields used by onWatch:

  • model_remains[].model_name
  • model_remains[].start_time
  • model_remains[].end_time
  • model_remains[].remains_time
  • model_remains[].current_interval_total_count
  • model_remains[].current_interval_usage_count

3) Validate rotating mock engine behavior

go run ./internal/testutil/cmd/mockserver --port 19213 --minimax-key minimax_test_e2e_key

Then query:

curl -s "http://localhost:19213/v1/api/openplatform/coding_plan/remains" \
  -H "Authorization: Bearer minimax_test_e2e_key" \
  -H "Content-Type: application/json"

Use /admin/scenario to set rotating responses and verify cycle updates.

4) Linux binary

Build command used:

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o temp/onwatch-linux-amd64-beta .

5) Docker

Set MINIMAX_API_KEY in .env and run:

docker compose up --build

Test plan

  • go test ./internal/api ./internal/store ./internal/tracker ./internal/agent ./internal/web ./internal/testutil ./internal/config
  • go test -race ./...
  • go vet ./...
  • Standalone mock engine MiniMax endpoint tested with rotating responses
  • Temporary beta Docker image built and pushed from PR branch

Refs #5

Add end-to-end MiniMax coding plan support with API client parsing, snapshot
persistence, reset-cycle tracking, agent polling, web handlers, dashboard UI,
and test mock engine rotation support. Includes VERSION bump to 2.10.2 and
MiniMax env wiring for local and Docker configs.
const quotaMap = provider === 'zai'
? ['tokensLimit', 'timeLimit', 'toolCalls']
: ['subscription', 'search', 'toolCalls'];
let quotaMap = ['subscription', 'search', 'toolCalls'];
: ['subscription', 'search', 'toolCalls'];
let quotaMap = ['subscription', 'search', 'toolCalls'];
if (provider === 'zai') {
quotaMap = ['tokensLimit', 'timeLimit', 'toolCalls'];
if (provider === 'zai') {
quotaMap = ['tokensLimit', 'timeLimit', 'toolCalls'];
} else if (provider === 'copilot') {
quotaMap = ['premium_interactions', 'chat', 'completions'];
} else if (provider === 'copilot') {
quotaMap = ['premium_interactions', 'chat', 'completions'];
} else if (provider === 'minimax') {
quotaMap = ['MiniMax-M2', 'MiniMax-Text-01'];
Align MiniMax mock fixture remains_time with observed API payloads using
milliseconds so mock-server scenarios match parser and tracker expectations.
Update docker metadata tagging so workflow_dispatch uses the required
inputs.tag value. This enables publishing temporary beta images from PR
branches without release event semver context.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant