Repository navigation
feat(OMN-20606): a fallback delegation names the delegation it follows, and the in-process evidence names its caller - #3435
jonahgabriel wants to merge 5 commits into
Conversation
…s, and the in-process evidence names its caller delegation_events gains parent_correlation_id, lineage_kind and parent_failure_cause (migration 0055), folded by a pure handler and written by both projection writers. The in-process evidence terminal now carries the request's caller lane, ticket and lineage; it carried none, which is why in-process fallback rows had an empty caller_lane. The delegate-skill response tolerates the lineage keys before declaring them (OMN-18868 order). Onex-Lane: deleg-fallback-mark-9143 Onex-Session: b4db569d3bd8442a9c343731c7995d63
✅ Architectural Review — PASSEDErrors: 0 What this checks
No architectural violations found. Static architectural lint — no model inference (OMN-14176). |
…omnimarket#3435 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head bc012a2c840548cb821fa3e7d4318a433b16ac3f.
|
| Verdict | Meaning | Blocks merge? |
|---|---|---|
passed |
>=2 models succeeded, no critical/error findings | No |
blocked |
CRITICAL or ERROR findings found | Yes |
degraded |
Fewer than 2 models succeeded (infra unavailable/timeout) | Yes (OMN-15110) |
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524)
…nimarket#3435 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/37350564489
…eage columns the exposure declares
|
OCC autobind rebound this PR's evidence-source stamp line to The receipt gate's own eligibility validator, run against the change-control tree the gate pins for Reported by |
Dev pins omnibase-infra>=0.38.67 in pyproject.toml and uv.lock pins 0.38.67, replacing the branch pin of 0.38.66. Migration 0055_delegation_events_lineage.sql ships in omnibase_infra v0.38.67, satisfying the Sibling Release Compatibility Gate (OMN-20381). Resolved conflict in port_local_delegation_dispatch.py _project_evidence by keeping both attribution and attempt_usage, with attribution first. Verified migration file blob a39d5d5 is byte-identical to omnibase_infra v0.38.67.
Reconcile the delegation_events schema by adopting omnimarket#3435's lineage_kind vocabulary over omnimarket#3472's attempt_kind. Both PRs added parent_correlation_id and parent_failure_cause; the kind columns differed only in name and values. The merge takes #3435's versions of all shared files, deletes #3472's redundant migration and its real-Postgres test (covered by #3435's), and rewrites the projection test to pin the reconciled schema. #3472 now lands after #3435; its residual diff is the test file and contract YAML only. Merges omnimarket#3435 head c41fd0e (OMN-20606); OMN-20287 step 1.
|
Superseded: this branch has no changed files against dev; the OMN-20606 work already landed through #3472. Closing (found by lane cause-omnimarket-ci-summary). Generated by Claude Code |
Pull request was closed
OMN-20606
What
Operator, 2026-10-05: show whether a delegation is an escalation or a fallback, and why its parent failed. Measured on the h201 dev lane (ledger TERMINAL 2026-10-05T16:10:11Z lane=byok-routing-fix-9143): 93 of 94 failed delegations that carried a session were answered by a later in-process delegation within 120 s, and the answering row had a new correlation id, an empty
caller_laneand nothing naming the failed parent.Two defects, both fixed here:
delegation_eventsgainsparent_correlation_id,lineage_kind(fallbackorescalation) andparent_failure_cause(migration 0055, nullable TEXT, partial index on the parent). One spelling inmodels/delegation/delegation_lineage.py; a pure fold (HandlerDelegationLineageFold) returns all three columns or a named refusal, and both writers (syncHandlerProjectionDelegationand the deployedDelegationProjectionRunner) persist what it returns. A partial or malformed lineage stores none of it and never dead-letters the row; a lineage-less re-emit keeps stored lineage.port_local_delegation_dispatch._project_evidencebuilds the only terminal that reaches the bus (OMN-20154), and it never copied the request'scaller_laneorticket_id, although the handler's own terminal carries both. That is the cause of the emptycaller_laneon every in-process fallback row. The handler now hands the port the validated caller lane, ticket and lineage (attribution, passed only when a request names any), and the port stamps them onto the evidence terminal.The delegate-skill response tolerates and drops the three lineage keys before declaring them (OMN-18868 consumer-first order); the projection model declares and keeps them. Declaring them on the response and stamping them from the deployed handler is the second half, after a release carrying this one.
Dependency
Needs the omnibase_infra release carrying omnibase_infra#4592 (vendored migration 0055, and the dispatch port's
attributionkeyword this handler passes). Pin bump to that release goes on this branch once it is out.Proof
origin/dev(10 failed) and pass on the branch.uv run pytest tests/unit/projection/test_delegation_lineage_omn20606.py tests/unit/nodes/node_delegate_skill_orchestrator/test_delegate_skill_attribution_omn20606.py -q(32 passed)tests/test_omn20606_lineage_projection_real_postgres.py(3 passed: a fallback row joins to its failed parent, re-emit keeps lineage, malformed writes none, migration shape and index); positive controltests/test_omn20162_backend_id_and_host_real_postgres.pypasses on the same database.origin/dev, backed up, restored after), migration 0055 applied to dev-202omnidash_analytics, and two in-processonex delegateruns made on h202 publishing to the dev-202 broker:e850644a-5411-4e29-9e66-65f9831b4e9cforced to fail (one-token budget): rowterminal_ok=f,caller_lane=deleg-fallback-mark-9143,ticket_id=OMN-20606(both were empty on every in-process row before this change);1333fb52-eb7f-4bf8-944d-1fe81623cc2e: rowterminal_ok=t,parent_correlation_id=e850644a-...,lineage_kind=fallback,parent_failure_cause=quality_gate_refused, same caller lane and ticket.onex-api.Not in this PR
delegate-skill-completedterminal (ModelDelegateSkillCompletedrefusesactual_score,causation_id,emitted_at). Reported in the lane TERMINAL, not changed here.Evidence-Ticket: OMN-20606
Evidence-Source: OCC#12962