v0.12.0
Consistent API errors
Portal clients now receive a stable error envelope with separate type and code fields across streaming, timestamp, readiness, SQL, and framework-generated failures. This is a breaking response-shape change: clients parsing plain text or flat {"message": ...} errors must read error.message.
- Actionable recovery signals. Capacity, transient availability, malformed requests, and Portal faults now use distinct status and code pairs; overload responses carry a retry hint.
- Safer worker failures. Invalid worker responses are discarded and retried, while exhausted integrity failures are distinguished from ordinary availability problems.
- Reliable request correlation. Request identifiers and retry and stream metadata are available to cross-origin clients, and malformed request identifiers are rejected consistently.
See spec/decisions/ADR-011-error-taxonomy.md for the error contract and migration details. (#132)
Full Changelog: v0.11.9...v0.12.0