cendor-sdk 1.17.0
Findings-closure wave — a fix for streamed-async checkpointing and multi-agent pipeline-shape
governance parity with the TypeScript SDK. Backwards-compatible (new keyword-only options preserve
today's behaviour); no cendor-core changes.
Fixed
run.astream(checkpoint=…)now persists (it was accepted but not applied). The async
streaming entry point took acheckpoint=argument and its docstring promised the same S13
semantics asrun.stream, but the argument was never forwarded tostream_agent_async/
stream_agents_async— so streamed-async checkpointing was silently a no-op. It now saves per turn
(single agent) / per turn + segment (team) and done-resumes to a lone terminalRunComplete,
matchingrun.streamand the TypeScript twin. Covered by a red-first async test (the twin of the
sync S13 tests).
Added
- Pipeline-shape governance parity (TS-observed).
sequential/parallel/parallel_async
now accept the honoured per-run surface —retry,on_step, andguardrails(a per-run override
of each agent's list; decisions collected intoResult.guardrail_decisions) — in addition to
audit/max_turns.supervisorgainssession,checkpoint,on_step,guardrails, and
retry, delegating torun_agentsexactly as the TypeScriptsupervisorridesrunAgents
(run_agents/run_agents_asyncalso forwardretrynow). This mirrors the TypeScript behaviour
1:1.
Honest limits
session/checkpointare team-only;guardrail_modeis single-agent-only. The pipeline
shapes (sequential/parallel/parallel_async) pipe or fan out over independent per-agent
inputs — there is no single conversation to persist or resume — so they don't takesession/
checkpoint; use a handoff team (run([...])) orsupervisorfor that.guardrail_mode
("parallel") applies only to single-agent runs; team and pipeline shapes always gate in blocking
mode. Both languages behave the same (seemulti-agent.md).