Skip to content

fix(doctor): MiniMax /v1/models returns 404 by design — check key presence only#818

Closed
ygd58 wants to merge 1 commit into
NousResearch:mainfrom
ygd58:fix/minimax-doctor-false-404
Closed

fix(doctor): MiniMax /v1/models returns 404 by design — check key presence only#818
ygd58 wants to merge 1 commit into
NousResearch:mainfrom
ygd58:fix/minimax-doctor-false-404

Conversation

@ygd58

@ygd58 ygd58 commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

MiniMax global API does not support the /v1/models endpoint, causing
hermes doctor to always report ⚠ (HTTP 404) even when the API key
is valid and MiniMax works correctly in chat sessions.

Fix: remove MiniMax from the endpoint-check list and show ✓ (API key configured)
when MINIMAX_API_KEY is present — consistent with how other key-only
providers are handled.

MiniMax (China) is unaffected — it keeps its existing endpoint check.

Fixes #811

MiniMax global API does not support the /v1/models endpoint, causing
hermes doctor to always report HTTP 404 even when the key is valid
and the provider works correctly in chat sessions.

Fix: remove MiniMax from the endpoint-check list and show it as
configured (key-only check) to avoid the misleading warning.

Fixes NousResearch#811
@ygd58

ygd58 commented Mar 10, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of #833 which takes a more general approach — adds a check_url flag to the provider tuple so any future provider with the same limitation only needs a single field change. Also fixes MiniMax (China) which had the same unreported issue.

@ygd58 ygd58 closed this Mar 10, 2026
lmsanch added a commit to lmsanch/hermes-agent that referenced this pull request Apr 22, 2026
…esearch#818)

Follow-up to d4fc986 — the telegram.py edit didn't make it into that
commit due to a linter race. This adds the missing import + send()
integration.

Closes lmsanch/toryx-private#818 (replaces the partial close from d4fc986)
lmsanch added a commit to lmsanch/hermes-agent that referenced this pull request Apr 22, 2026
…sResearch#818)

Follow-up to f0e63ec extending the redaction chokepoint beyond telegram
and email:

- tools/tts_tool.py::text_to_speech_tool: redact `text` right after the
  empty-string guard. Every TTS provider (edge/elevenlabs/openai/fish/
  minimax/mistral/gemini/neutts) receives already-redacted input, so voice
  output can't leak secrets even though text output is fine.

- gateway/platforms/discord.py::send: same pattern as telegram/email —
  redact `content` at the top of the method.

Remaining platform adapters (slack, feishu, wecom, dingtalk, mattermost,
signal, bluebubbles, homeassistant, matrix, qqbot, sms) follow the same
one-line pattern and can land in a follow-up PR.

Still refs lmsanch/toryx-private#818
lmsanch added a commit to lmsanch/hermes-agent that referenced this pull request Apr 22, 2026
…ation (#4)

* feat(security): secret-redaction preprocessor + telegram/email integration

Motivating incident: toryx-private#807 Issue 5 — Christopher leaked raw
Alpaca API keys into a Telegram approval prompt. This module closes that
class at the send-path chokepoint.

New `tools/secret_redactor.py`:
- Regex-based redaction for common provider keys (Anthropic, OpenAI, Groq,
  Fireworks, Toryx, GitHub PAT, Slack, AWS) + Alpaca labeled headers + PEM
  private keys + generic Bearer tokens
- Replacement marker: [REDACTED:<kind>] so readers can see what was stripped
- Idempotent, fast (precompiled patterns), safe on None/empty input

Integration:
- gateway/platforms/telegram.py send(): redact content at the top of the
  method, before format_message() and chunking
- gateway/platforms/email.py send(): redact content before
  loop.run_in_executor passes it to _send_email

All test vectors use synthetic A/B/1 fillers to avoid tripping push-protection
secret-scanning. No real keys in tests.

Not yet wired (follow-up PR): TTS text at tts_tool.py::_generate_fish_audio,
plus the other platform adapters (discord, slack, feishu, wecom, etc.).

Closes lmsanch/toryx-private#818

* feat(security): wire secret redactor into telegram adapter too (NousResearch#818)

Follow-up to d4fc986 — the telegram.py edit didn't make it into that
commit due to a linter race. This adds the missing import + send()
integration.

Closes lmsanch/toryx-private#818 (replaces the partial close from d4fc986)

* feat(security): wire secret redactor into TTS + discord adapters (NousResearch#818)

Follow-up to f0e63ec extending the redaction chokepoint beyond telegram
and email:

- tools/tts_tool.py::text_to_speech_tool: redact `text` right after the
  empty-string guard. Every TTS provider (edge/elevenlabs/openai/fish/
  minimax/mistral/gemini/neutts) receives already-redacted input, so voice
  output can't leak secrets even though text output is fine.

- gateway/platforms/discord.py::send: same pattern as telegram/email —
  redact `content` at the top of the method.

Remaining platform adapters (slack, feishu, wecom, dingtalk, mattermost,
signal, bluebubbles, homeassistant, matrix, qqbot, sms) follow the same
one-line pattern and can land in a follow-up PR.

Still refs lmsanch/toryx-private#818
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.

[Bug]: MiniMax does not support a https://api.minimax.io/v1/models URL, so the hermes doctor command always reports MiniMax as HTTP 404

1 participant