feat(erp): publish bounded materialization observations after finite completion - #638
Merged
zzylol merged 39 commits intoSep 11, 2026
Merged
Conversation
…' into feat/maintenance-completion
Make completed summary windows immutable after durable flush
* refactor(clickhouse): remove unused relational tree executor * test(clickhouse): construct the shared predicate wrapper
* refactor: share installed QueryPlan contracts across components * refactor(query): use shared identity contract in MetricsQL adapter * style: format shared query identity fixture
* refactor: share installed QueryPlan contracts across components * refactor(query): use shared identity contract in MetricsQL adapter * style: format shared query identity fixture * refactor(plans): share producer and publication contracts
* feat(clickhouse): execute typed array element access * style(clickhouse): format collection default helper * fix(clickhouse): distinguish nonfinite exact values from nulls * test(clickhouse): verify exact denormal transport policy
* feat(catalog): identify derived summary inputs * fix(catalog): separate derived policy domain from raw metric names * docs(sds): separate immutable window section
* feat(clickhouse): execute typed array element access * style(clickhouse): format collection default helper * feat(clickhouse): read typed tuple fields inside query DAGs * refactor(clickhouse): share nested type argument parsing * fix(clickhouse): distinguish nonfinite exact values from nulls * test(clickhouse): verify exact denormal transport policy * test(clickhouse): verify native tuple field rendering
* feat(catalog): identify derived summary inputs * fix(catalog): separate derived policy domain from raw metric names * fix(storage): reserve immutable output publication durably * fix(storage): reject retry after manifest retirement * docs(sds): separate immutable window section * fix(storage): look up committed lineage before sketch evaluation * fix(storage): match pending lineage atomically during recovery
* fix(clickhouse): preserve SQL nulls in result formats * test(clickhouse): distinguish literal null marker strings
feat: select UnivMon ERP evidence by readout units
…orkflow Measure MetricsQL candidates against VictoriaMetrics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Runtime ERP matching previously consumed externally supplied or offline observations. The precompute worker now observes the actual supported HLL/UnivMon inputs and publishes bounded, separate empirical population counts through the existing RuntimeSamples gRPC channel after a verified finite-source drain.
The shared envelope carries catalog generation, summary definition, concrete instance identity, input semantics, window, and freshness. The control plane fits the empirical counts, resolves the authoritative data descriptor, rejects stale or mismatched evidence, and requires one configuration to satisfy every observed population. Overflow invalidates the complete observation. Only accepted catalog activation resets the observer generation; delayed old-generation input cannot erase current counts. Missing evidence follows theoretical/exact selection. Collector-free typed publication is supported through the existing compiler endpoint.
Before this change, no production ingest call emitted ERP shape observations. After it,
--erp-runtime-samples-endpointenables worker observations that a subsequent typed planning request can consume. Existing instance IDs are preserved by a shared derivation helper.Verification: shared bounded-counter tests (2), producer tests (2, including catalog transition and delayed-generation input), ERP consumer tests (18), and the real worker → gRPC → consumer → Planner → warm UnivMon process test passed on the reviewed fixes. CI is pending. No performance claim is made.
Scope: this closes finite-input feedback, not autonomous continuous replanning. Publication requires the existing finite completion barrier. Live eligibility initially requires full-window raw PerEntity cardinality/frequency readouts with matching catalog data semantics; shorter panes, nested/transformed inputs, and weighted/counter inputs cannot borrow this evidence. It retains bounded frequency counts for observation, never raw sample copies. Stacked on #626; includes #635 and the consumer integration.