Repository navigation
Added
- Next-turn tests with synthetic state/history, completed-turn checkpoints,
state patches, prefix replay, and fresh app/mock factories. - ADK app plugins for tool interception and nested invocation tracing;
LangGraph checkpoint forks; a native LangChaincreate_agentadapter. turn_runnerpytest fixture,run-turnandreplay-untilcommands, and
reports showing starting boundaries, state changes, and agent invocations.- Offline benchmarks for adapter overhead and checkpoint capture, restore, and
size with single and nested graphs.
Changed
- Parallel suites and batches require app factories and create separate mock
state for each run. LangGraph mock context is isolated per execution. - Custom adapters declare capabilities explicitly. Unsupported state,
interception, and observation requests raise errors. - Autonomous adapters accepting mocks must intercept tools before execution;
the runner no longer replaces observations after an action has run. - Graph completion ends a turn, rather than the entire conversation.
- Native integrations require ADK 2.11+, LangGraph 1.2.14+,
langchain-core 1.6.9+, and LangChain 1.4.4+ where applicable. - Adopt shared py-canon CI, documentation, and release workflows, with
package-only line and branch coverage measured before pytest imports. - Update compatible dependencies and verify Python 3.12, 3.13, and 3.14.
Fixed
- HTTP adapters create sessions using the documented ADK and Agent Engine
request formats and capture streamed tool results, transfers, and token usage. - Agent Engine refreshes supplied credentials when invalid.
- Tool-call IDs are scoped to native invocations, preserving distinct results
when parallel subagents reuse an ID. ADK callbacks are left intact. - Installation instructions and rubric imports match the supported package API.
- Importing the runtime no longer requires pytest. Assertion helpers raise normal
assertion errors; pytest fixtures remain in the plugin. - Installed next-turn CLI commands import factories from the current project.
- LangChain mock responses preserve native strings, content blocks, and tool names.
- Private child history is excluded from new-turn traces, while sibling message IDs
remain independent. Checkpoint export fetches only the latest root and persistent
subagent snapshots, avoiding scans of historical snapshots and accumulation of
completed subagent invocations. Dormant persistent subagent state is preserved.
Checkpoints include managed runtime and mock-service state, not external systems
or model randomness. Restoring inside an unfinished execution is not supported.
See the state-testing guide
for adapter capabilities, limits, and migration examples.
Validation: 421 tests pass with zero skips and 84% line/branch coverage. Independent review and installed-wheel testing pass with locked and current compatible SDKs. CI passes on Python 3.12, 3.13, and 3.14.