Skip to content

docs(examples): list MiniMax M3.1 Flash and M3 as harness_duo model options - #1112

Merged
AbirAbbas merged 3 commits into
Agent-Field:mainfrom
octo-patch:octo/20261019-minimax-m31-flash
Oct 30, 2026
Merged

AbirAbbas merged 3 commits into
Agent-Field:mainfrom
octo-patch:octo/20261019-minimax-m31-flash

Conversation

@octo-patch

@octo-patch octo-patch commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Maintainer takeover (2026-10-30): re-checked OpenRouter: minimax-m3.1-flash:free currently has no published endpoint, while minimax-m3.1-flash has 12 providers and minimax-m2.7 still has 5 live ones with tool support. The example keeps minimax-m2.7 as its default; the README and provider guide list minimax-m3.1-flash and minimax-m3 as HARNESS_MODEL options and drop the dated availability notes. TestPiFamilyPreservesOpenRouterFreeSuffix stays. main merged in to clear the README conflict. The original description follows.


Reason: the active Pi/OMP Go workflow still defaults to MiniMax M2.7. MiniMax M3.1 Flash is now available through OpenRouter's :free route, while the bare Flash slug has no published endpoint.

Summary

Use openrouter/minimax/minimax-m3.1-flash:free as the harness_duo default and update its README and provider guide. Document the verified openrouter/minimax/minimax-m3 alternative, preserve HARNESS_MODEL and per-call overrides, and cover the :free suffix through both Go adapters.

The current Flash endpoint supports tools with automatic tool choice; the adapters do not force tool choice and structured output uses files. No direct MiniMax route, model-specific runtime capabilities, or price estimates are added.

Availability was checked on 2026-10-19:

Type of change

  • Bug fix
  • New feature
  • Refactor / cleanup
  • Docs only
  • Tests only
  • CI / tooling
  • Breaking change

Test plan

  • cd examples/go_agent_nodes && go test ./cmd/harness_duo && go vet ./cmd/harness_duo.
  • cd sdk/go && go test ./harness -count=1, including TestPiFamilyPreservesOpenRouterFreeSuffix for Pi and OMP.
  • cd sdk/go && go test ./... and go mod tidy -diff passed.
  • Changed Go files formatted; git diff --check and diff secret scan.
  • ./scripts/test-all.sh reported an unrelated control-plane failure in TestStopHTTPServerShutdownTimeout (graceful_shutdown_test.go:170: expected an error, got nil). Stopped the remaining run after recording that failure; Python/TypeScript/UI stages were not reached. This PR remains a draft pending broader validation and coverage CI.

No live inference or external agent CLI was run. The route remains subject to OpenRouter availability/free-route limits and the installed CLI's model catalog. The SDK's generic model passthrough and historical invalid-model cases are unchanged.

Test coverage

  • I ran tests for the surfaces I changed locally.
  • The route suffix is covered through adapter argument construction and normalized model metrics.
  • The coverage gate check is green in CI before requesting review. The completed Python coverage job reported 6 failed, 2,552 passed, 4 skipped and 38 deselected. All six failures are in unchanged Python tests and report FastAPI.__init__() got an unexpected keyword argument 'enable_mcp'; the event-loop message is an additional warning. The coverage summary subsequently failed because the Python coverage artifact was missing. Go, control-plane/Go/TypeScript/UI coverage, local/PostgreSQL functional tests, and the main build passed. No Python files changed. Both affected test modules were independently rerun on the unmodified base 2f5583e5d88f27c1175e58978a4464463553b38d in an isolated Python 3.11 environment with the declared dev dependencies: the same six failures reproduced, with 20 tests passing.

Checklist

  • I read docs/CONTRIBUTING.md and docs/DEVELOPMENT.md.
  • Commits are signed and follow conventional-commits style.
  • The commit follows conventional-commits style; it is not cryptographically signed.

AI-assisted implementation and validation: GPT-6 through MiniMax Code, under a human-authorized MiniMax release rollout.

Related issues / PRs

Follows the Pi/OMP integration in #913. Existing MiniMax media integrations are outside this change.

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Performance

SDK Memory Δ Latency Δ Tests Status
Go 249 B -11% 0.83 µs -17% ✓ ✓

✓ No regressions detected

@AbirAbbas AbirAbbas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One concern before this comes out of draft: openrouter/minimax/minimax-m2.7 still has six live providers on OpenRouter (GMICloud, Novita, AtlasCloud, Minimax, Groq), while minimax-m3.1-flash:free has exactly one, the Minimax free endpoint, and the bare Flash slug has none. Switching the example's default to a single free route makes harness_duo less reliable for people who copy it: free routes are rate-limited, can disappear without notice, and the dated "as of 2026-10-19" notes will go stale.

I'd keep m2.7 as the default (or move to minimax-m3, which has 14 providers) and mention the Flash :free route as an option you can set through HARNESS_MODEL. The new TestPiFamilyPreservesOpenRouterFreeSuffix is worth keeping either way. The red coverage (sdk-python) check was the FastAPI 0.148 test break that #1120 fixed on main; merging main will clear it.

AbirAbbas and others added 2 commits October 30, 2026 09:22
# Conflicts:
#	examples/go_agent_nodes/cmd/harness_duo/README.md
M2.7 still has several live OpenRouter providers, while the
minimax-m3.1-flash:free route currently has no published endpoint.
List M3.1 Flash and M3 as HARNESS_MODEL options instead of making
a single free route the default, and drop the dated availability
notes. The :free suffix pass-through test stays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AbirAbbas
AbirAbbas marked this pull request as ready for review October 30, 2026 13:23
@AbirAbbas AbirAbbas changed the title fix(examples): use MiniMax M3.1 Flash in the Pi and OMP workflow docs(examples): list MiniMax M3.1 Flash and M3 as harness_duo model options Oct 30, 2026
@AbirAbbas
AbirAbbas requested a review from a team as a code owner October 30, 2026 13:23
@AbirAbbas

Copy link
Copy Markdown
Contributor

Took this over since it had been sitting for a while. I re-checked OpenRouter today and the picture flipped: minimax-m3.1-flash:free has no published endpoints right now, while the bare minimax-m3.1-flash has a dozen providers and minimax-m2.7 still has five live ones with tool support. So the example keeps minimax-m2.7 as its default, the README and provider guide list M3.1 Flash and M3 as HARNESS_MODEL options, and the dated availability notes are gone. Your TestPiFamilyPreservesOpenRouterFreeSuffix test stays, since passing :free through untouched is worth guarding. I also merged main to clear the conflict (main renamed the default harness to codeaf).

@github-actions

Copy link
Copy Markdown
Contributor

📊 Coverage gate

Thresholds from .coverage-gate.toml: per-surface ≥ 84%, aggregate ≥ 85%, max per-surface regression ≤ 1.0 pp, max aggregate regression ≤ 0.50 pp.

Surface Current Baseline Δ
control-plane 88.20% 87.40% ↑ +0.80 pp 🟡
sdk-go 93.70% 92.00% ↑ +1.70 pp 🟢
sdk-python 94.72% 93.73% ↑ +0.99 pp 🟢
sdk-typescript 92.50% 90.42% ↑ +2.08 pp 🟢
web-ui 84.89% 84.79% ↑ +0.10 pp 🟡
aggregate 86.11% 85.75% ↑ +0.36 pp 🟡

✅ Gate passed

No surface regressed past the allowed threshold and the aggregate stayed above the floor.

@github-actions

Copy link
Copy Markdown
Contributor

📐 Patch coverage gate

Threshold: 80% on lines this PR touches vs origin/main (from .coverage-gate.toml:thresholds.min_patch).

Surface Touched lines Patch coverage Status
control-plane 0 — ➖ no changes
sdk-go 0 — ➖ no changes
sdk-python 0 — ➖ no changes
sdk-typescript 0 — ➖ no changes
web-ui 0 — ➖ no changes

✅ Patch gate passed

Every surface whose lines were touched by this PR has patch coverage at or above the threshold.

@AbirAbbas AbirAbbas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Net change against main is now the two doc updates plus the :free suffix test. The example default is unchanged. Harness tests pass and CI is green.

@AbirAbbas
AbirAbbas added this pull request to the merge queue Oct 30, 2026
Merged via the queue into Agent-Field:main with commit b43b196 Oct 30, 2026
27 checks passed
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.

2 participants