Skip to content

fix: generalize summary cost evidence across arrival modes - #532

Merged
zzylol merged 1 commit into
mainfrom
fix/summary-cost-arrival-modes
Oct 2, 2026
Merged

zzylol merged 1 commit into
mainfrom
fix/summary-cost-arrival-modes

Conversation

@zzylol

@zzylol zzylol commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Addresses the general evidence-model question raised in #528. Kept separate because analytical workload coverage goes beyond #511/#528's operator/scalar representation design. Based on main, with no #528 commits included.

Before this PR: StreamingSummaryInputs::from_workload rejected fixed snapshots, even though the lifecycle planner and comparison scope already supported AtRest. Generic operator evidence types were named as if they were stream-specific.

After this PR: a fixed 10-row snapshot can build a shared summary once and answer five evaluations with zero arrival updates. The actual lifecycle planner selects a completely costed at-rest summary against its matching raw scan. The same SummaryOperatorEvidence and SummaryNodeEvidence API serves continuous ingestion.

  • Derive zero arrivals for AtRest; require fresh snapshot cardinality and retain mandatory fresh rate evidence for continuous ingestion.
  • Reject mismatched workload/scope arrival modes, contradictory at-rest rates, and directly supplied raw/summary evidence that violates those semantics.
  • Rename the evidence/input/window/alternative types without legacy aliases; bump the analytical estimator version to summary-maintenance-resource-v2.

Mixed/Unknown still fail explicitly: the workload schema does not separate backlog and arrivals. This PR does not add physical computation-placement policy (#530). #528 owns removal of “readout” and unified operator names; those representation edits are intentionally absent from this main-based diff.

Validation: regression reproduced UnsupportedDataArrival(AtRest) before the fix; all 1,524 workspace tests pass on Rust 1.99, including 43 summary-cost tests. Formatting and workspace/all-target clippy with warnings denied pass. Tests cover actual lifecycle selection, missing/contradictory evidence, direct-provider bypass attempts, and existing continuous/mixed behavior.

@zzylol
zzylol merged commit 8d6fd71 into main Oct 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant