d26f20c316
Root Child DOX Index assembled, plus a per-module AGENTS.md across the tree (core/*, infrastructure/*, apps/*, testing/*, and docs/examples/frontend/etc), each following the DOX section shape: Purpose, Ownership, Local Contracts, Work Guidance, Verification, Child DOX Index.
31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# 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).
|