v0.12.0
·
68 commits
to develop
since this release
Highlights
This release brings two new framework adapters and a new public SDK helper. The Claude Agent SDK adapter and LangGraph adapter both let you wrap third-party agent runtimes inside a Kitaru checkpoint, so you get durable, replayable executions across more of the agent ecosystem. A new kitaru.current_execution_id() helper makes it easy to read the active execution ID from inside a flow or checkpoint.
Added
- Claude Agent SDK adapter (
kitaru.adapters.claude_agent_sdk) — wraps a Claude SDK query in one Kitaru checkpoint and captures the session ID, final result, usage/cost, message transcript when available, and a redacted run manifest. Includes a guide, runnable integration example, and smoke-test coverage. Claude-internal Bash, MCP, custom tool, and workspace side effects remain inside Claude itself and are not granular replay boundaries. - LangGraph adapter (
kitaru.adapters.langgraph) — durable execution for LangGraph agents. Kitaru owns graph-call or middleware-wrapped call checkpoints, LangGraph keeps ownership of thread/checkpointer semantics, and Deep Agents filesystem/sandbox behavior remains pass-through. Ships with a/guides/langgraph-adapterguide, aexamples/integrations/langgraph_agent/example, and deterministic smoke-test coverage with no API keys required. - LangGraph
checkpoint_strategy="calls"mode viaKitaruLangGraphMiddleware— creates true sync LangChain model/tool call checkpoints, while the default coarsegraph_callmode remains the simpler one-checkpoint-per-invocation option. Callbacks/event streams stay trace-only, and async calls mode is metadata-only by design. kitaru.current_execution_id()— public helper to read the active Kitaru execution ID inside a running flow or checkpoint.
Fixed
- LangGraph adapter event logs and run summaries are now stored as real role-first Kitaru context artifacts inside checkpoint scope, with best-effort event persistence by default and hardened config/context redaction for unusual values.
- PydanticAI granular checkpoints now store model messages and tool arguments as structural checkpoint inputs and use the returned checkpoint output as the canonical response/result artifact, avoiding the duplicate manual artifacts that earlier runs created.
- OpenAI Agents
checkpoint_strategy="calls"now stores model inputs and function-tool arguments as structural checkpoint inputs, and adapter-generated artifact names put the human-readable role first across PydanticAI, OpenAI Agents, and Claude Agent SDK captures.
Full Changelog: v0.11.0...v0.12.0