# testing/integration ## Purpose End-to-end integration tests that wire multiple core modules together without live LLM or network. Covers: `SessionOrchestrator` full flows, tool-call gate, freestyle approval gate, clarification loop, steering preemption, graph reroute, artifact injection, workspace-scoped tool registry, validation pipeline integration, critique calibration wiring, session rehydration, repo-map reuse, and subagent runner seam. ## Ownership Tests in this submodule. Production modules exercised: `core:events`, `core:sessions`, `core:transitions`, `core:validation`, `core:approvals`, `core:context`, `core:inference`, `core:kernel`, `core:journal`, `core:risk`, `core:tools`, `core:toolintent`, `core:artifacts`, `core:artifacts-store`, `core:router`, `core:config`, `infrastructure:persistence`, `infrastructure:tools`, `infrastructure:tools:filesystem`, `apps:server`. ## Local Contracts - Tests use mock inference (`MockInferenceProvider` from `testing:fixtures`) — no live LLM. - `apps:server` is imported for Ktor wiring tests only; no external HTTP calls. - Two-plane validation (Plane 2 / `core:toolintent`) must be exercised by at least one test here — `ToolCallGateTest` covers this. ## Work Guidance - Suspend tests use `runBlocking { ... }` or `kotlinx-coroutines-test`. - These are the slowest tests; run targeted with `:testing:integration:test --tests "ClassName"` during development. ## Verification ``` ./gradlew :testing:integration:test --rerun-tasks ``` ## Child DOX Index No child AGENTS.md (leaf module).