feat: add e2e observation contract - #19
Conversation
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (15)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds versioned observation schemas and Rust models, propagates observation contracts through suite and control-plane execution, generates terminal observations, and archives observations alongside or instead of reports. ChangesObservation contract flow
Estimated code review effort: 5 (Critical) | ~120 minutes Merge Risk: ⚪ Minimal · up to The PR adds versioned observation contracts while preserving legacy behavior when the optional contract is absent; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant Caller
participant ControlPlane
participant SuiteRun
participant ObservationEnvelope
participant DurableHistory
Caller->>ControlPlane: submit RunRequest with observation contract
ControlPlane->>ControlPlane: validate hashes, runner, catalog, and selected cases
ControlPlane->>SuiteRun: execute with observation contract
SuiteRun-->>ControlPlane: return execution result and report data
ControlPlane->>ObservationEnvelope: build and validate terminal observation
ObservationEnvelope-->>ControlPlane: return observation.json metadata
ControlPlane->>DurableHistory: archive report and/or observation
Poem
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
Summary
e2e-observation/v1and scenario-catalog contracts with canonical digestsrun_contractfor observe-only executions, including exact target, plan, runner, catalog, case, attempt, and deployment/campaign identityrun_contractis absentSafety
Observe-only executions remain non-gating. The worker never promotes or blocks a deployment from an observation result.
Validation
cargo fmt --all -- --checkSKIP_DASHBOARD_BUILD=1 cargo check --all-targetsSKIP_DASHBOARD_BUILD=1 cargo test --lib— 281 passedgit diff --checkRelated PRs and rollout order
harness-e2eRegistry worker.Live Registry smoke is an explicit rollout step after all three PRs land. No Release Control deployment contains the E2E runner.
Summary by CodeRabbit