Skip to content

Reject maintenance updates without an implemented evaluator - #610

Merged
zzylol merged 2 commits into
mainfrom
fix/maintenance-operator-validation
Sep 11, 2026
Merged

zzylol merged 2 commits into
mainfrom
fix/maintenance-operator-validation

Conversation

@zzylol

@zzylol zzylol commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

The production maintenance adapter treated SummaryAgg as SummaryMerge, ignoring its target family and update expression. For example, a count aggregation receiving a sum state containing 7 returned that same sum state instead of evaluating the count.

Reject a non-source SummaryAgg until a typed update evaluator is available. An already computed source still enters through its materialization binding, and homogeneous SummaryMerge dependencies continue to execute. Document the distinction between DAG traversal and implemented operators.

Before: an unsupported summary transformation could be published as if it had executed. After: it fails explicitly instead of silently reusing input state under a different materialization identity.

Verification: all six maintenance-runtime tests passed, including the count-over-sum regression, shared dependencies, unsupported operators, bounded receipts, and publication retries. Performance and visual evidence are not applicable.

Stacked on #607. This closes a correctness hole; it does not implement general summary-over-summary transformations. A typed update/readout evaluator remains required for those operators.

@zzylol
zzylol changed the base branch from fix/bound-maintenance-commit-state to main September 11, 2026 00:05
@zzylol
zzylol merged commit f78cdd5 into main Sep 11, 2026
1 check 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