feat(estimation): implement EstimationReport domain model and estimation_produced decision type #677

Closed
aditya wants to merge 2 commits from feature/m6-estimation-report-model into master

2 Commits

Author SHA1 Message Date
aditya 93468d5752 Merge branch 'master' into feature/m6-estimation-report-model
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 36s
CI / security (pull_request) Successful in 48s
CI / unit_tests (pull_request) Successful in 2m26s
CI / docker (pull_request) Successful in 39s
CI / integration_tests (pull_request) Successful in 3m25s
CI / coverage (pull_request) Successful in 5m1s
CI / benchmark-regression (pull_request) Successful in 31m7s
2026-03-10 13:14:37 +00:00
aditya 6eff0b0899 feat(estimation): implement EstimationReport domain model and estimation_produced decision type
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / security (pull_request) Successful in 34s
CI / typecheck (pull_request) Successful in 38s
CI / unit_tests (pull_request) Successful in 2m23s
CI / docker (pull_request) Successful in 43s
CI / integration_tests (pull_request) Successful in 3m18s
CI / coverage (pull_request) Successful in 5m2s
CI / benchmark-regression (pull_request) Has been cancelled
Created EstimationReport Pydantic model with comprehensive validation for
multi-dimensional estimation output (cost ranges, step counts, rollback risk,
confidence, duration, and rationale). Added estimation_produced to the
DecisionType enum (now 12 types) and included it in STRATEGIZE_TYPES (now 6 types).

Database changes:
- Added estimation_report JSON column to v3_plans table for persisting
  structured estimation data alongside scalar cost_estimate_usd
- Updated decisions table CHECK constraint to include estimation_produced
- Migration uses batch mode for SQLite compatibility

Tests:
- 20 new Behave scenarios covering validation, boundary conditions,
  serialization round-trips (model_dump and JSON), and immutability
- Updated all existing tests to expect 12 decision types instead of 11
- Updated Robot Framework and documentation references
- All tests pass with full coverage

ISSUES CLOSED: #649
2026-03-10 13:05:33 +00:00