Skip to content

feat: represent exact maintenance binary timing explicitly - #402

Merged
zzylol merged 3 commits into
mainfrom
inspect/multi-source-maintenance
Sep 11, 2026
Merged

feat: represent exact maintenance binary timing explicitly#402
zzylol merged 3 commits into
mainfrom
inspect/multi-source-maintenance

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

The actual selected plan for quantile(0.9, sum_over_time(m[1m]) + sum_over_time(n[1m])) could not export: its binary value was always read-time even when consumed by maintained state.

Add explicit ExecutionTiming to the existing BinaryOp and executable Binary payload. Maintained exact arithmetic retimes cloned Binary/Finalize value boundaries, preserving read-time consumers, schemas, operands and guarantees. Shared validation checks matching input timing and scalar schemas; CSE distinguishes execution timing. Missing wire timing defaults to ReadTime and ReadTime serialization omits the field, preserving existing wire identity.

Before: the real selected two-source candidate failed ReadoutUnderMaintenance. After: it exports an explicit maintenance binary and exact-finalize boundaries. This is a typed planning contract; backend consumers must explicitly implement MaintenanceTime arithmetic and must not reinterpret old ReadTime payloads.

Validation: 18 PromQL integration tests, including actual two-source selection/export and legacy wire roundtrip; 404 mapping and 196 shared-type unit tests passed before the final stricter maintenance schema check. Final integration rerun verifies that check. Runtime performance is not claimed.

@zzylol zzylol changed the title Represent exact maintenance binary timing explicitly feat: represent exact maintenance binary timing explicitly Sep 11, 2026
@zzylol
zzylol marked this pull request as ready for review September 11, 2026 19:01
@zzylol
zzylol merged commit 3be523f into main Sep 11, 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