Skip to content

ci(OMN-14160): add call-occ-autobind caller to omnibase_core - #1713

Merged
jonahgabriel merged 4 commits into
devfrom
jonah/omn-14160-core-occ-autobind-caller
Sep 19, 2026
Merged

jonahgabriel merged 4 commits into
devfrom
jonah/omn-14160-core-occ-autobind-caller

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Closes OMN-14160.

Summary

  • omnibase_core had no OCC-autobind caller workflow.
  • It never had one on any ref.
  • Its Fix section names omnibase_core first of six destinations.
  • The 2026-07-24 fan-out reached the other five and skipped this one.
  • The ticket was marked Done anyway.
  • It was reopened on 2026-09-19.
  • The exclusion was deliberate on 2026-07-23.
  • It is recorded in the sibling caller header.
  • The premise was that the autobind path was being retired.
  • Five repositories received that same caller the next day.
  • The premise lapsed and was never revisited.
  • The sibling header is corrected in this change.

What changed

  • Add the OCC-autobind caller workflow to omnibase_core.

  • Port the caller from the omnibase_infra shape.

  • Include the manual replay entrypoint.

  • Add the precheck script it runs.

  • Add a test for both.

  • Add an updated pin assertion.

  • Add a workflow budget waiver.

  • Bump the package version because a source file changed.

  • Correct the sibling caller header.

  • Use the stricter precheck copy.

  • The stricter variant refuses to decide on a malformed payload.

  • It does not read a malformed payload as open and non-draft.

  • The caller is not a required status check.

  • It publishes a command and cannot block a merge.

  • Fix a raw process environment read in the test file being edited.

  • Migrate that read to the typed bootstrap.

  • Over the last 200 change-control pull requests, seven repositories receive autobind-flavoured evidence companions.

  • omnibase_core receives zero.

  • Over the same window, omnibase_core received five companion-effect mints.

  • The five are the positive control.

  • The minter reaches this repository.

  • The zero is the missing caller.

  • With no autobind, the evidence-source trailer is never bound.

  • An unstamped pull request burns the full 1500 second preflight eligibility budget.

  • It fails closed.

  • This repository instantiates the preflight reusable in 43 workflows.

Proof

  • This pull request's own autobind job runs on it.
  • A companion minted for this pull request is the readback.

Local verification

  • pre-commit run --files <the eight changed files> clean, no hook modified a file on the final pass.
  • pytest tests/ci/test_occ_manual_replay_entrypoint.py tests/ci/test_workflow_uses_refs_resolve.py tests/validation/test_pull_request_workflow_ratchet.py -> 52 passed.
  • mypy --strict clean on the new script; ruff format and ruff check clean on all changed Python.
  • The advisory-job gate was run locally against this tree at the sha this repository pins, and passes. A positive control was taken: renaming the replay job to a verification-shaped id makes the same run report UNENFORCED_VERIFICATION_JOB against this exact file, so the pass is a measurement and not an absence.
  • The updated pin assertion was likewise controlled: run against the pre-change tree its map yields one entry, so the new expectation is genuinely red without the caller.
  • The environment-reader validator passes in both modes, and its inventory goes 328 findings / 106 paths -> 326 / 105 with unassigned=0 stale=0.

Notes for the reviewer

  • The lab-first step for a CI-only change of this shape is the workflow running on this pull request itself. There is no runtime or lane mutation here.
  • The reusable now also resolves on omniclaude main, so the OMN-14812 re-pin is unblocked. It is deliberately not taken here: that is a fleet-wide change across seven callers and does not belong in a fan-out.
  • The sibling call-occ-companion-effect.yml workflow-budget waiver expires 2026-09-20, and its own text says not to renew it a third time without landing the migration or an explicit operator call. That is OMN-16359 and is flagged, not touched.

PR body drafted via onex delegate on the local chain, receipt 92a8d9c7-1a36-464d-8947-f6911779d987, correlation 6f255217-227d-4b7d-9360-770734009295, model Qwen3.8-27B, quality 0.9.

Evidence-Ticket: OMN-14160
Evidence-Source: OCC#10421

omnibase_core is the single fleet holdout with no OCC-autobind caller. Its
own Fix section names this repository first of six destinations; the
2026-07-24 fan-out reached the other five and skipped it, and the ticket was
marked Done anyway.

Measured over the last 200 change-control PRs: seven repositories receive
autobind-flavoured evidence companions and this one receives zero, against
five companion-effect mints for this repository over the same window. The
five are the positive control -- the minter reaches here, so the zero is the
missing caller.

Lands the caller ported from the omnibase_infra shape including the
OMN-14993 manual-replay entrypoint, the precheck script it runs (the stricter
OMN-16697 variant, which refuses to decide on a malformed payload rather than
reading it as open and non-draft), a test over both, an extended pin
assertion, and a workflow-budget waiver.

Two pre-existing failures fixed here rather than skipped: the raw
process-environment read in the touched test module is migrated to the typed
bootstrap and deregistered from the reader inventory, and the package version
is bumped because a source file changed.

Onex-Lane: omnibase-core-occ-autobind-caller-1350
Onex-Session: f5d53f069d934271857d85cfeff81b02
@jonahgabriel
jonahgabriel enabled auto-merge (squash) September 19, 2026 14:39
jonahgabriel pushed a commit to OmniNode-ai/onex_change_control that referenced this pull request Sep 19, 2026
…ibase_core#1713 (#10421)

* evidence(OMN-14160): author OCC companion for OmniNode-ai/omnibase_core#1713

OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head cd80d97835d61462f8cd7a9308ba47daf751d77c.

* evidence(OMN-14160): self-bind OCC#10421 + rebind contract_sha256

---------

Co-authored-by: omnimarket-bot <bot@omninode.ai>
jonahgabriel added 2 commits September 19, 2026 11:14
…erything audit

`test_every_pr_triggered_job_is_classified` enumerates every pull-request
triggered job in this repository and refuses any that resolves to none of the
three classification buckets. That refusal is the mechanism keeping "a new
workflow file is structurally invisible" closed here, and it fired on both
jobs this change adds -- correctly, because nothing had classified them.

Both are recorded as explicitly exempt with their reasons, not promoted to a
required context. The publisher validates no pull-request content and cannot
gate a merge, so asserting it under the umbrella would let a transient broker
outage block every merge in the repository; that is the same classification
and the same reasoning the kb-doc-gate caller already carries. The manual
replay job is gated to workflow_dispatch and is skipped on every pull-request
event, the same class as the closed-PR-only jobs above it.

Onex-Lane: omnibase-core-occ-autobind-caller-1350
Onex-Session: f5d53f069d934271857d85cfeff81b02
…tdir

JUnit dotted paths are relative to pytest's rootdir, and this repository
resolves two of them. `pytest tests/ --splits 40`, the full-suite invocation,
gives rootdir `tests/` and ids like `unit.enums.test_compat_enum_parity`.
Some runner invocations resolve the repository root instead and prefix every
id with an extra `tests.` segment. The two forms name the same tests.

The comparison was a raw set difference, so a baseline recorded under one form
and a report emitted under the other overlap in nothing. That produced a
verdict that contradicts itself on its face, live on this PR: "the skipped set
GREW by 60 test(s) (delta +60; 60 observed against a baseline of 60)" -- every
id new while the count had not moved.

The baseline for the unit suite was re-recorded in the prefixed form on
2026-09-19 by OMN-16851 (#1712), whose own provenance note reports doing this
exact comparison by hand: "confirmed by diffing the old and new node_ids with
the `tests.` prefix stripped: the sets are identical". This change makes the
gate do that diff instead of a person, so its verdict no longer depends on
which invocation produced the report it reads. The first full-suite run to
read that baseline was this PR, and it failed closed on the formatting
difference alone.

Normalisation, not relaxation. It is applied identically to the observed set
and to the baseline, strips only a leading `tests.`, collapses no two distinct
tests onto one id, and leaves the count bar at 60. Two tests pin both
directions: a prefix difference alone is green, and an added skip still fails
under the prefixed report, naming the offending id.

Onex-Lane: omnibase-core-occ-autobind-caller-1350
Onex-Session: f5d53f069d934271857d85cfeff81b02
@onexbot-occ-writer

Copy link
Copy Markdown
Contributor

No OCC evidence companion was minted for this PR.

this PR is already bound to OCC#10421; its evidence companion exists and nothing needs authoring

To clear this: Nothing to do — the companion already exists.

Reported by node_occ_companion_effect (decline code already_bound, OMN-16665). This decision was made against the PR's LIVE state at compute time, not at publish time — a green publisher job only means the command reached the broker.

@jonahgabriel
jonahgabriel merged commit 0149fc6 into dev Sep 19, 2026
172 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-14160-core-occ-autobind-caller branch September 19, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant