Repository navigation
v0.79.0
What's Changed
- fix(tools,gemini): what the pre-release review of 0.79.0 found
- docs(changelog): promote Unreleased to 0.79.0 and repair the footer links
- fix(tools): a refused realtime call does not trace as a served one (LUG-1846)
- feat(tools): a handler can refuse a call in its own words (LUG-1846)
- feat(tools): state the outcome of every tool call, refused ones included
- refactor(gemini): read GEMINI_API_KEY everywhere and drop a warning that lies (RMK-1840)
- feat(examples): drive both Gemini live examples from the microphone (RMK-1839)
- fix(gemini): never schedule a tool response unless asked (RMK-1838)
- docs(examples): the transcribe example resamples, it does not require 16 kHz
- fix(gemini): send a thinking level extended-thinking cannot start without (RMK-1837)
- fix(examples): repair trace_audio and make the shared backend import explicit
- feat(stt): stream speech-to-text on gemini-3.5-transcribe-live (LUG-1836)
- fix(gemini): track blocking tool calls per call, not per model (LUG-1834)
- feat(gemini): default to gemini-3.8-live across the library and examples (LUG-1835)
- feat(gemini): adapt the Live provider to the 3.8 contract (LUG-1832, LUG-1833, LUG-1834)
- chore(tests): ignore the google-genai typing deprecation on Python 3.14 (LUG-1831)
- feat(gemini): publish the 3.8 Live lineup and raise the google-genai floor (LUG-1831)
- fix(core): use inspect.iscoroutinefunction for Python 3.14+ (LUG-1831)
- fix(voice): keep GPT-Live close() a release of every socket it owns
- fix(voice): release a GPT-Live socket whose protocol is already over
- Begin 0.79.0.dev0 development
Full Changelog: v0.78.0...v0.79.0