mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-13 23:52:06 +00:00
PR #26457 changed the 400 wire format on the HTTP API in three ways: 1. \`Effect.catch(HttpApiError.BadRequest)\` → \`{ data: {}, errors: [], success: false }\` 2. \`HttpApiSchemaError\` defect → same shape 3. \`normalizeEmptyBadRequest\` post-processor that rewrites ANY empty 400 into the same shape In v1.14.42 (post-Hono-deletion) at least one external plugin (\`opencode-gemini-auth\`, per #26546 reports) makes an HTTP API call during startup that hits one of these paths and breaks on the new body shape — the unparseable JSON ends up printed to stdout and the TUI never starts. \`opencode --pure\` works (no plugins), \`opencode run\` works (no in-process server interaction), but \`opencode\` (TUI) crashes. Revert all three changes from #26457. The default HttpApi serialization of typed errors comes back, matching v1.14.41 wire format. We can re-introduce structured validation responses behind an opt-in or contract change once plugin authors have a chance to migrate. Closes #26546.