fix: trim opencode-go 422 salvage to the invariant set

Drop the bare "tool.content" pattern (any 400 mentioning tool.content in a
non-list context would be sent through the image-strip path) and the profile
flag snapshot test; the behaviour tests (classifier verdict + proactive
downgrade) already pin the contract.
This commit is contained in:
Teknium
2026-09-09 03:26:05 -07:00
parent bee840bc8c
commit e1838c5b5a
2 changed files with 2 additions and 10 deletions
+2 -2
View File
@@ -169,8 +169,8 @@ _IMAGE_CORRUPT_PATTERNS = (
_MULTIMODAL_TOOL_CONTENT_PATTERNS = (
"text is not set", "tool message content must be a string", "tool content must be a string",
"tool message must be a string", "expected string, got list", "expected string, got array",
"tool_call.content must be string", "tool.content.str", "tool.content",
"input should be a valid string",
# Console Go / pydantic-v2 relays behind opencode-go (422, param ``messages.N.tool.content.str``, #104731).
"tool_call.content must be string", "tool.content.str", "input should be a valid string",
)
# Local-inference memory/resource-ceiling rejections (oMLX/MLX memory guard,
@@ -254,11 +254,3 @@ class TestOpenCodeGoFullKwargsIntegration:
assert "extra_body" not in kwargs
assert kwargs["reasoning_effort"] == "high"
class TestOpenCodeGoVisionToolMessages:
"""OpenCode Go provider profile declares supports_vision_tool_messages=False (#104731)."""
def test_supports_vision_true_and_tool_messages_false(self, opencode_go_profile):
assert opencode_go_profile.supports_vision is True
assert opencode_go_profile.supports_vision_tool_messages is False