Add five runtime integration tests that exercise worker boot readiness, lane event emission, hook merging, task packet roundtrips, and config validation through the public crate surface.
Constraint: Keep coverage in rust/crates/runtime/tests without adding dependencies
Rejected: Fold the cases into existing integration_tests.rs | harder to isolate the requested workflow coverage
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep these tests focused on cross-module wiring; leave unit-level edge cases in module-local test suites
Tested: cargo test --workspace (from rust)
Not-tested: Push result on remote CI
Add a focused runtime integration test file that exercises worker boot state,
lane event emission, hook config merging and execution, task packet roundtrips,
and config validation through the public runtime APIs.
Constraint: Keep the change scoped to integration coverage without touching runtime behavior
Rejected: Reusing broader untracked workspace changes | would mix unrelated work into this request
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep these tests aligned with the public runtime re-exports and cross-module wiring paths
Tested: cargo test -p runtime --test runtime_workflows; cargo test --workspace
Not-tested: No additional lint-only pass beyond rustfmt
Add focused integration coverage for real git branch freshness checks, degraded MCP startup reporting, policy routing, prompt misdelivery recovery, and telemetry JSONL roundtrips.
Constraint: Keep coverage isolated to new integration test files so existing in-progress workspace edits stay untouched
Rejected: Expand existing unit tests instead | user requested integration coverage across runtime and telemetry boundaries
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep these scenarios in integration tests because they depend on cross-module behavior and serialized output contracts
Tested: cargo test --workspace
Not-tested: Remote push hooks or CI-only environment differences
Add WorkerFailureKind::Provider variant and observe_completion() method
to classify degraded session completions as structured failures.
- Detects finish='unknown' + zero tokens as provider failure
- Detects finish='error' as provider failure
- Normal completions transition to Finished state
- 2 new tests verify classification behavior
This closes the gap where sessions complete but produce no output,
and the failure mode wasn't machine-readable for recovery policy.
ROADMAP P2.13 backlog item added.