# testing/kernel

## Purpose

Focused tests for `core:kernel` internals that require real event-store plumbing. Covers: approval-before-emit ordering race, retry coordinator behavior, replay inference provider, launch registration race conditions, workspace derivation from replay, and context feedback propagation.

## Ownership

Tests and `MockEventReplayer` helper in this submodule. Production modules exercised: `core:kernel`, `core:events`, `core:sessions`, `core:inference`, `core:approvals`, `core:context`, `core:transitions`, `core:validation`, `core:risk`, `core:tools`, `core:artifacts`, `core:artifacts-store`, `infrastructure:persistence`.

## Local Contracts

- `ApprovalRegisterBeforeEmitTest` pins the ordering invariant: approval listener must be registered before the event is emitted or the gate is missed.
- `LaunchRegistrationRaceTest` pins that concurrent session launches do not corrupt registration state.
- `koverVerify` is disabled for this submodule.

## Work Guidance

- Suspend tests use `runBlocking { ... }` or `kotlinx-coroutines-test`.
- Race tests (`LaunchRegistrationRaceTest`) must not use `Thread.sleep()` — use coroutine barriers.

## Verification

```
./gradlew :testing:kernel:test --rerun-tasks
```

## Child DOX Index

No child AGENTS.md (leaf module).
