Changelog: harnessweaver-openai¶
All notable changes to this plugin. The format follows Keep a Changelog, and this package uses Semantic Versioning on its own (RULES V1). Versions before 0.2.0 were never published; their Git tags (harnessweaver-openai@<version>) mark the commit where each one landed.
[Unreleased]¶
0.2.0 - 2026-11-02¶
The first version published to PyPI.
Added¶
- The README says what
openai.chatdoesn't carry for Claude: thinking,effortand server-side refusal fallbacks. hold_streamdelivers a streamed answer's chunks only once it has finished, so nothing from a declined answer reaches the app.block_empty_answerstreats an answer with no text and no tool calls as declined, which catches a streamed refusal LiteLLM dropped.
Fixed¶
- A request the model declines (the message's
refusalfield, also underprovider_specific_fieldswhere LiteLLM moves it, or the finish reasoncontent_filter) now ends the runblockedwith codemodel_refusal, inopenai.chatand throughharness.instrument(client), and its usage and cost still count. It used to pass as an ordinary answer, often empty. An app that readsmessage.refusalon an instrumented client now getsRunBlockedinstead. Needsharnessweaver0.18.0.
0.1.2 - 2026-11-01¶
Added¶
- The package ships the Apache-2.0
LICENSEin its wheel and sdist.
0.1.1 - 2026-10-18¶
Added¶
- The adapter gives the conformance suite an offline sample call, so
make conformancechecks it (T5).
0.1.0 - 2026-10-18¶
Added¶
- The
openai.chatprovider (retries off, LiteLLM cost header, streaming) and theinstrument()adapter forOpenAI/AsyncOpenAI.