Repository navigation
v0.107.0
What's Changed
- docs(changelog): promote Unreleased to 0.107.0
- fix(models): Mistral Large 4 at its list price, its launch price having ended
- feat(voice): Voxtral speaker labels in a file and live (RMK-885), and an ending turn waits relative to its end once the next starts (RMK-887)
- feat(voice): a provider that cuts its own turns keeps its stream across turns in continuous mode (RMK-887)
- feat(voice): Voxtral 3 STT and TTS providers, Mistral's speech end to end (RMK-884)
- test(orchestration): a delegating call is cut once its worker works, its bound longer than the supervisor's own framing turn
- docs(changelog): name RMK-843, the per-turn cost of a request's history metadata, documented and kept
- test(orchestration): the worker delegation bound tests wait for the worker's end, which reaches an async hook, rather than a fixed delay
- fix(telemetry): a span started with an explicit parent nests under it rather than under a propagated ancestor, so a turn's tool calls stay under its generation across processes (RMK-836)
- docs(examples): the cancel_task example speaks English (RMK-829)
- fix(tasks): the CHANGELOG says when each kind of task reads ended and what the console says of an ended line, and a test pins the status an inline task's end records (RMK-829)
- feat(turns): a turn an executor runs in another process continues the owner's trace, its request carrying the W3C trace context of the span it runs under (RMK-836)
- fix(tasks): cancel_task and the console answer a task the bus lists ended as it lists it, and an inline task reads ended before its hooks run (RMK-829)
- fix(orchestration): a realtime handoff's refusal names the agents it refuses, its tests cover each refused kind and that nothing is reconfigured, and the realtime imports of the pipeline sit at the top (RMK-831)
- fix(orchestration): a handoff serving a realtime channel refuses any agent that is not an Agent, on every path its language change takes, by the pipeline's one rule (RMK-831)
- fix(tasks): cancel_task answers a task of the room that just ended as ended, and a strategy's inline run as the strategy's, from a record that keeps the latest ended (RMK-829)
- fix(turns): the Redis turn backend reads redis-py's TimeoutError from its own module, which a redis package imported again does not carry as an attribute (RMK-859)
- fix(turns): a Redis call its bound cut is tried again at once, and counts as one that hung, so a half-open connection stays inside the silence bound beyond the default bounds (RMK-859)
- fix(orchestration): a HandoffHandler serving a realtime channel refuses an agent held by its declaration, as ConversationPipeline does (RMK-831)
- fix(tasks): cancel_task answers a task of the room it may not cancel as running, and why, from the kit's own record of each room's tasks (RMK-829)
- feat(tts): Phonon TTS provider, Gradium's small local models on the CPU (RMK-867)
- fix(turns): the Redis turn backend's connections give up a call within half the silence bound, so a half-open connection takes nobody for lost, and the redis extra needs 5.0.2 (RMK-859)
- revert(tasks): the cancel_task answer of f571142, per review (RMK-829)
- revert(turns): the Redis client options of 80bd4ca, per review (RMK-859)
- fix(turns): an owner that closes gives up only the turns still open, so a turn whose end is owed stays incomplete, per review (RMK-832)
- fix(tasks): cancel_task answers a task the room lists running that runs in no background as still running, and why, never as unknown (RMK-829)
- fix(turns): the Redis turn backend's clients give up a call on a half-open connection within heartbeat_timeout, whatever redis-py is installed (RMK-859)
- fix(tasks): without a shared transport too, only the delegated agent's cut ends its task, and a worker owing its result is re-prompted past a cut helper, per review (RMK-834)
- test(orchestration): the missed-message test covers an addressed message too and checks the discussion ended, and the CHANGELOG says what delays the routing, per review (RMK-835)
- fix(tasks): a delegated task keeps the answer and the end of the agent it was delegated to, whatever order its child room's responders returned in (RMK-834)
- fix(orchestration): a discussion asks done before it gives a turn or dispatches a message queued while it looked at the queue (RMK-835)
- refactor(orchestration): extract the turn a discussion plans under the room lock from TurnDriver._next_turn (RMK-835)
- docs(turns): the c7 page, the llms files and the backends' docstrings say the kit's own executor alone takes its live agents' turns, and its channel calls, committed events and a holder elsewhere are tested, per review (RMK-837)
- fix(turns): the kit's own executor alone takes the turns of the agents the kit holds live, on both backends (RMK-837)
- test(channels): the turn test watches every scan of the header and reads a history that alternates, and the CHANGELOG says a run of unlabelled user messages is still scanned whole, per review (RMK-844)
- perf(channels): a turn no longer scans the history the last turn read for a copy of the notes' header (RMK-844)
- fix(delivery): a cancelled delivery's cleanup joins its turns only, its key holds until it is over and is scoped to an organization, and an injected event starts no turn (RMK-860)
- fix(turns): a cut that reaches an executor while a close's cleanup runs lets the channel finish it (RMK-860)
- feat(delivery): cancelling a delivery stops its turns, not its delivery, and a caller names it by delivery_key (RMK-860)
- fix(turns): an executor cancels a turn's work once, so a close after a cut lets the channel finish its cleanup (RMK-860)
- Begin 0.107.0.dev0 development
Full Changelog: v0.106.0...v0.107.0