v0.1.9
What's Changed
- fix: deep-merge dict metadata during aggregation by @declanjackson in #41
- fix(clients): avoid empty text parts when encoding OpenAI message content by @declanjackson in #50
- feat: allow passthrough kwargs to E2B sandbox creation by @declanjackson in #42
- feat: add create_gate kwarg to E2BCodeExecToolProvider for throttling sandbox creation by @BillyDodds in #48
- feat: allow multiple finish tools by @declanjackson in #49
- fix: serialize Docker image prepare to avoid concurrent-pull race by @BillyDodds in #47
- Fix/cache handling by @MohamedAkbarally in #36
- fix: prevent zombie process leak on code_exec timeout by @BillyDodds in #4
⚠️ Breaking changes
full_msg_history no longer appends per turn
session.run() returns full_msg_history: list[list[ChatMessage]]. As of this release, a new group is only appended on context summarization (plus one final
group at session end) — not once per turn. len(full_msg_history) no longer reflects the agent's turn count.
To count turns, count AssistantMessage instances across the flattened history:
from itertools import chain
from stirrup.core.models import AssistantMessage
num_turns = sum(
1 for m in chain.from_iterable(full_msg_history) if isinstance(m, AssistantMessage)
)New Contributors
- @BillyDodds made their first contribution in #48
Full Changelog: v0.1.8...v0.1.9