Repository navigation
fix(OMN-16998): terminal_failure_cause names the observed provider status class - #1632
Conversation
…atus class
The enum carried a single member, PROVIDER_QUOTA_EXHAUSTED, so a live HTTP 401
had no cause it could resolve to and terminalised as a quota event. B7 ("zero
over-quota refusals") is measured from this field, so auth failures were being
counted as capacity pressure.
Adds AUTH_FAILED (401/403) and PROVIDER_ERROR (any other observed provider-side
failure). PROVIDER_ERROR is distinct from a null cause: null means no
classification was attempted, PROVIDER_ERROR means classified and not one of the
specific cases.
Tests pin each member's wire string exactly and assert the vocabulary is closed,
so adding a member without updating the suite fails.
Version bumped to 0.47.2 per the OMN-13411 release-identity gate: packaged
source changed against a published 0.47.1. Merge to dev only; the release chain
tags and publishes.
…#7923) * evidence: OCC companion pass 1 for OmniNode-ai/omnibase_core#1632 * evidence: OCC companion self-bind for #7923 --------- Co-authored-by: node-occ-companion-effect <occ-companion-effect@omninode.ai>
|
Close-out for OMN-16998. Jonah merged this as What landed: How it was verified:
One correction to the description. The selector note says The consumer half is omnimarket#2287. The live check that a 401 comes back as Thank you! |
Closes OMN-16998 (core half).
EnumDelegationTerminalFailureCausecarried exactly ONE member,PROVIDER_QUOTA_EXHAUSTED. So a live HTTP 401 had no cause it could resolve to and was recorded as a quota event — an auth failure wearing the quota label. The over-quota refusal metric is measured from this field, so that overstates capacity pressure that never happened.What this adds
AUTH_FAILED— the provider rejected the credential: HTTP 401 or 403. Never capacity.PROVIDER_ERROR— any other provider-side failure, once one has been observed. Deliberately distinct from a null cause: an unobserved failure and an unrecognised one are not the same fact.Purely additive. No existing member renamed, no wire value changed.
Tests
10 new, in
tests/unit/enums/test_enum_delegation_terminal_failure_cause.py:Version
No bump in this diff.
devreached0.47.2independently while this branch waited, and PyPI is still at0.47.1— so0.47.2is unreleased and this change lands inside that pending release. The OMN-13411 release-identity gate is satisfied by the bump already ondev.Governed pre-push on
.201. NoPREPUSH_*override, no--no-verify, no skip token, no override grant.Zero failures. An earlier run of this branch reported 4 failed / 44448 passed. Two were
test_verify_flip_bundletwin-baseline-shrink, since root-caused and fixed as OMN-17324 (a sibling clone owned by another uid, refused by gitsafe.directory). Two were the load-dependenttest_cli_stdout_paritysplit_count39-vs-40 cases, which pass on a quiet box — this run confirms that.Selector note for OMN-16321
This diff is two files — the enum and its test — purely additive, with no
pyproject.tomloruv.lockchange. It still escalates withreason=shared_module.That rules out the hypothesis raised when this branch first escalated, that the version bump riding in the same commit might be the disqualifier. The bump became a no-op after the rebase and the escalation is unchanged, so
enums/being a shared module is sufficient on its own.Not in this PR
The omnimarket half — the
resolve_terminal_failure_causerewrite, where status and quota body must corroborate within one reported failure — is committed and held until this lands and the infra pin advances.The live-401 done-proof (wrong key → one delegation →
terminal_failure_cause == "auth_failed"whilequality_gates_failed[0]contains HTTP 401) needs the.201lane, which is currently blocked on OMN-17150 defect 3: the runtime cannot find a Bifrost lane overlay of its own.Evidence-Ticket: OMN-16998
Evidence-Source: OCC#7923