Repository navigation
fix(OMN-20426): canary score reducer writes capability_scores through the projection arm - #3346
Merged
Merged
Conversation
public.capability_scores had 0 rows on the dev lane because the handler lacked handle(), causing AttributeError on the first adr-canary-completed event. The change adds handle() to strip runtime keys, validate ModelCanaryReport, fold with accumulate() and materialize(), and upsert capability_scores rows keyed on (model_key, task_type). A failed canary report writes nothing. metadata.yaml side_effect_class changes from read_only to read_write. New chain test passes with the updated handler.
✅ Architectural Review — PASSEDErrors: 0 What this checks
No architectural violations found. Static architectural lint — no model inference (OMN-14176). |
✅ Hostile Reviewer — PASSEDBlocking findings (critical/error): 0 Gate semantics
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524) |
jonahgabriel
enabled auto-merge (squash)
October 3, 2026 23:16
jonahgabriel
added a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Oct 4, 2026
) * evidence(OMN-20426): add contract and PASS receipt for OmniNode-ai/omnimarket#3346 Adds contracts/OMN-20426.yaml and drift/dod_receipts/OMN-20426/dod-OmniNode-ai-omnimarket-pr-3346/command.yaml. Receipt is a hand-authored companion for head 168a5dafc08e88145963dd9705fd230324f5b78d; check counts 'def handle(' in node_canary_score_reducer handler (probe output 1, exit 0). occ-autobind ended ERROR (git clone timed out after 120 seconds); receipt captured with check_receipt_hardening.py --capture-probe, passing yamlfmt, check-yamlfmt-contamination, and check-receipt-hardening. * evidence(OMN-18921): mint the owed OCC self-bind for PR #12694 --------- Co-authored-by: onexbot-occ-writer[bot] <onexbot-occ-writer[bot]@users.noreply.github.com>
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.
Summary
public.capability_scoreswas empty on the dev lane;node_canary_score_reducercould not write it.Test plan
Evidence
capability_scores0 rows; positive controldelegation_events9497 rows.onex.evt.omnimarket.adr-canary-completed.v1had high-watermark 0 before the probe. A consumer group forcanary_score_reducerwas Stable on thetenant-projection-writercontainer, so the subscription hop works.tests/chains/test_canary_score_reducer_writes_capability_scores.pyon the unfixed handler failed withAttributeError: 'HandlerCanaryScoreReducer' object has no attribute 'handle', surfaced by the runtime as a withheld offset. GREEN after the change: focused run of that file plus the node's own tests, 11 passed.Lab: host omninode-pc (lab host h201), dev lane compose project omnibase-infra, container omnimarket-tenant-projection-writer. Hotpatched head 168a5da's handler into the container (file copy plus docker restart, .prepatch backup), published one adr-canary-completed event with one successful model score, and
select count(*) from public.capability_scoreswent 0 to 1: rowomn20426-probe-model | adr_extraction | success_rate 0.835 | total_count 4 | avg_latency_ms 500 | house tenant, consumer group offset 0 to 1 with lag 0. The original file was then restored and the container restarted healthy.Evidence-Ticket: OMN-20426
Evidence-Source: OCC#12694