hermes-bsd/agent
Hendrix 9ca72a69a7 fix(moonshot): fill missing type before enum cleanup to handle anyOf branches without explicit type
When a schema node inside anyOf has enum values but no explicit 'type',
Rule 3 (enum cleanup) ran before _fill_missing_type, so node_type was
None and the enum was never cleaned. Moonshot then rejected the schema
with 'enum value (<nil>) does not match any type in [string]'.

Fix: reorder operations — fill missing type first, strip nullable,
then clean enum. This ensures enum cleanup always has a type to check.

Also fixes test expectation: empty string in enum is now correctly
stripped (Moonshot rejects it too).

Closes #16875
2026-04-30 23:14:31 -07:00
..
transports fix(deepseek): preserve v4 reasoning_content on replay 2026-04-30 11:18:39 -07:00
__init__.py
account_usage.py
anthropic_adapter.py fix(anthropic): reactive recovery for OAuth 1M-context beta rejection (#17752) 2026-04-29 21:56:54 -07:00
auxiliary_client.py fix(fallback): let custom_providers shadow built-in aliases 2026-04-30 20:18:44 -07:00
bedrock_adapter.py
codex_responses_adapter.py
context_compressor.py fix(context_compressor): off-by-one in tail protection for short conversations 2026-04-30 20:00:01 -07:00
context_engine.py
context_references.py
copilot_acp_client.py fix(ci): stabilize main test suite regressions (#17660) 2026-04-29 23:18:55 -07:00
credential_pool.py feat(minimax-oauth): full integration with peer OAuth providers 2026-04-29 09:53:42 -07:00
credential_sources.py feat(minimax-oauth): full integration with peer OAuth providers 2026-04-29 09:53:42 -07:00
curator.py fix(curator): rewrite cron job skill refs after consolidation (#18253) 2026-04-30 23:04:50 -07:00
display.py fix(guardrails): preserve display _detect_tool_failure semantics 2026-04-30 20:43:15 -07:00
error_classifier.py fix(anthropic): reactive recovery for OAuth 1M-context beta rejection (#17752) 2026-04-29 21:56:54 -07:00
file_safety.py
gemini_cloudcode_adapter.py
gemini_native_adapter.py
gemini_schema.py
google_code_assist.py
google_oauth.py
image_gen_provider.py
image_gen_registry.py
image_routing.py
insights.py
lmstudio_reasoning.py
manual_compression_feedback.py fix(compression): include system prompt + tool schemas in token estimates (#18265) 2026-04-30 23:03:54 -07:00
memory_manager.py feat(memory): notify providers on mid-process session_id rotation (#17409) 2026-04-29 04:57:22 -07:00
memory_provider.py feat(memory): notify providers on mid-process session_id rotation (#17409) 2026-04-29 04:57:22 -07:00
model_metadata.py fix(context): honor model.context_length for Ollama num_ctx and all display paths 2026-04-30 04:31:23 -07:00
models_dev.py feat(minimax-oauth): full integration with peer OAuth providers 2026-04-29 09:53:42 -07:00
moonshot_schema.py fix(moonshot): fill missing type before enum cleanup to handle anyOf branches without explicit type 2026-04-30 23:14:31 -07:00
nous_rate_guard.py
onboarding.py docs(onboarding): lead OpenClaw residue banner with migrate, warn that cleanup breaks OpenClaw (#17507) 2026-04-29 08:08:36 -07:00
prompt_builder.py feat(kanban): durable multi-profile collaboration board (#17805) 2026-04-30 13:36:47 -07:00
prompt_caching.py
rate_limit_tracker.py
redact.py fix(ci): stabilize main test suite regressions (#17660) 2026-04-29 23:18:55 -07:00
retry_utils.py
shell_hooks.py
skill_commands.py fix(skills): wire bump_use() into skill invocation and preload paths (#17782) 2026-04-30 05:07:34 -07:00
skill_preprocessing.py
skill_utils.py fix(skills): exclude .archive from skill index walk 2026-04-30 04:59:22 -07:00
subdirectory_hints.py
title_generator.py
tool_guardrails.py fix(guardrails): preserve display _detect_tool_failure semantics 2026-04-30 20:43:15 -07:00
trajectory.py
usage_pricing.py