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. |
||
|---|---|---|
| .. | ||
| bin | ||
| migration | ||
| script | ||
| specs | ||
| src | ||
| test | ||
| .gitignore | ||
| AGENTS.md | ||
| BUN_SHELL_MIGRATION_PLAN.md | ||
| bunfig.toml | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| git | ||
| package.json | ||
| parsers-config.ts | ||
| README.md | ||
| sst-env.d.ts | ||
| tsconfig.json | ||