🐛 Patch Changes
- 52a921c: Surface Claude thinking text as
reasoning_contentwhen an Anthropic Messages reply is translated to a Chat Completions reply, both streaming and non-streaming. - f93cde5: Report Anthropic
refusalstops ascontent_filterandmodel_context_window_exceededstops aslengthon chat completions routes. Both were reported asstop, so a refused or truncated Claude reply looked like a finished turn. - b3f1251: Fix Chat Completions requests with function tools to Amazon Bedrock GPT cross-Region inference profiles (such as
us.openai.gpt-6-luna). Bedrock Runtime defaults these models to reasoning and rejects that next to function tools, so a request with tools and noreasoning_effortnow sendsnone, the OpenAI default. Areasoning_effortthe caller sets is now forwarded instead of dropped. - 78780f9: Speed up harness-scoped request logs by reusing the resolved harness ID when querying unlinked legacy attempts.
- ca55315: Send provider-required request headers from the Playground. Runs against OpenCode Go and OpenCode Zen now carry
x-opencode-session, so the provider no longer rejects them withMissingSessionID. Headers set in the request editor still take precedence. - 352618a: Keep token-limited and refused replies visible on
/v1/responseswhen the upstream speaks Chat Completions. Alengthorcontent_filterfinish now yieldsstatus: "incomplete"(streams end withresponse.incomplete), andmessage.refusal/delta.refusalbecomerefusalcontent parts instead of an empty completed response. Non-stream requests answered by a native Responses upstream over SSE now keep theresponse.incompleteandresponse.failedsnapshots instead of reporting them as completed. - df977e5: Reuse resolved harness IDs across analytics queries and keep cached request filters isolated when harness names are reused.