New features:
- New OpenAI models:
gpt-6-solfor GPT-6 Sol andgpt-6-lunafor GPT-6 Luna. #1702 - Model plugins can now declare
supports_conversation = Falsefor models that only accept single-turn prompts. LLM raisesllm.ConversationNotSupportedwhen these models receive assistant or tool history, andllm chatrejects them before starting a session. See {ref}Models that do not support conversations <advanced-model-plugins-conversations>. The first plugin to use this is llm-typesafe. #1692 - Reasoning traces in the Markdown output of
llm logsare now wrapped in<details><summary>tags. #1701
Bug fixes:
- Fixed
llm logs -tcrashing withKeyError: 'options_json'when displaying truncated logs with options or schemas. Thanks, rdslw. #1656 - Fixed
AsyncResponse.log_to_db()raisingsqlite3.ProgrammingErrorafter a response had been awaited. Structured messages and provider metadata are also preserved when logging restored async responses. Thanks, Roli Bosch. #1668 - Tool parameters and nested model fields named
titleare now preserved in generated input schemas. Thanks, Christopher Pruijsen. #1679, #1680 - Constructing
llm.Promptdirectly without options now initializes the model's defaultOptionsobject, fixing errors in providers that access option attributes. Thanks, Jane Li. #1028, #1663 - Closing an asynchronous
response.astream_events()stream before completion now closes the underlying provider generator, allowing it to release streaming connections and other resources. Thanks, Shunsuke. #1659 - SQLite connections opened by CLI commands are now closed when the command finishes, including on errors, avoiding unclosed-connection warnings.
Documentation:
- Corrected the structured output example in the advanced model plugins documentation to use
supports_schema = True. Thanks, Ethan Stoner. #1686