{"content":"fix: give desktop_ax a wire-valid object JSON Schema\n\nRoot cause of the deepseek-flash 400 \"tools.77.function.parameters must be a JSON Schema of type object\": the desktop_ax plugin registered a flat property map as its parameters spec. The kernel registry passes plugin tool definitions through verbatim onto the provider wire (only defineTool compiles the flat spec form, and plugin registrations bypass it), so DeepSeek upstream saw {\"action\": ...} with no object root and rejected every turn (400 upstream_bad_request, non-retryable INVALID_REQUEST). GLM gateways tolerate the malformed root - which is why glm-5.3-flash kept working in the same conversation and why sessions without the computer-use switch (the only mount of desktop_ax) never hit it.\n\nFix: wrap parameters in {type:'object', properties:...} (additionalProperties:true; execution still parses defensively) and swap the kernel-compiler test for a wire-shape gate asserting the registered schema through the kernel's own assertObjectJsonSchema. The 2026-11-11 hostToolSchemaGuard does not see in-process plugin registrations, so the shape is pinned at the source.\n\nEvidence: session cw-b2fe5ca1 turns 3/4 died at step 1; request/header tools[77]=desktop_ax was the only one of 257 tools flagged bad. Tests: test:desktop-ax chain 34/34 green. Branch fix/ui-issues-11, commit 80d7acae.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}