Skip to content

fix(OMN-19550): declare session_content ownership so omnibase_infra#4154 can vendor the migration - #2937

Merged
jonahgabriel merged 1 commit into
devfrom
jonah/omn-19550-session-content-ownership
Sep 26, 2026
Merged

jonahgabriel merged 1 commit into
devfrom
jonah/omn-19550-session-content-ownership

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Step 1 of the standard forced three-part order documented throughout
scripts/application-relation-ownership.yaml (see the work_events /
lab_lane_health / dod_verify_runs comments): declares
omninode_internal.session_content as a db_io.db_tables entry
(access: write, role: session_content, mirroring
node_projection_session_content's own contract.yaml exactly), with
no accompanying migration SQL, so the node-migration-vendor-parity-gate
short-circuits on this PR.

  • omnibase_infra#4154 (vendoring 0001_create_session_content.sql
    ahead of omnimarket#2905, per the node-migration-vendor-parity-gate)
    is currently real-red on Application Database Domain Enforcement
    (requires exactly one ownership declaration) because that gate
    reads this file from omnimarket's dev tip, not from any PR branch.
  • Once this merges, omnibase_infra#4154 can vendor the migration
    (step 2), which unblocks omnimarket#2905's own
    node-migration-vendor-parity-gate (step 3).

No CREATE TABLE lands here, so source_created_tables and
minimum_unreconciled_live_base_tables are unchanged;
source_declared_tables moves 80 -> 81, the same step-1 shape as the
OMN-18999/OMN-18769 entries in the same file.

Test plan

  • uv run python scripts/generate_application_relation_inventory.py --check passes (evidence regenerated with --write)
  • uv run pytest tests/unit/scripts/test_application_relation_inventory.py -q -- 12 passed
  • uv run ruff check on both changed Python files -- clean
  • uv run mypy tests/unit/scripts/test_application_relation_inventory.py --strict -- clean
  • pre-commit run --files ... on the three changed files -- passed

OMN-19550, related to omnimarket#2905 and omnibase_infra#4154.

Evidence-Source: OCC#11438
Evidence-Ticket: OMN-19550

…154 can vendor the migration

The OMN-15361 SQL ownership gate resolves table ownership from this
repo's scripts/application-relation-ownership.yaml on omnimarket's dev
tip, never from a node's own contract.yaml db_io block and never from
a PR branch. omnibase_infra#4154 (vendoring node_projection_session_
content's 0001_create_session_content.sql ahead of omnimarket#2905,
per the node-migration-vendor-parity-gate) failed Application
Database Domain Enforcement with "requires exactly one ownership
declaration" because omninode_internal.session_content had no entry
on dev.

Step 1 of the standard forced three-part order (see the work_events/
lab_lane_health/dod_verify_runs comments in the same manifest): this
PR carries the db_io.db_tables declaration alone (access: write, role:
session_content, mirroring the node's own contract.yaml exactly). The
node package and its own create migration land separately in
omnimarket#2905 (step 3), once omnibase_infra#4154 has vendored the
migration (step 2), which this declaration unblocks.

Regenerated the derived evidence file and bumped the
test_application_relation_inventory.py source_declared_tables ratchet
(80 -> 81, ahead of source_created_tables, the step-1 shape shared
with OMN-18999/OMN-18769); source_created_tables and
minimum_unreconciled_live_base_tables are untouched here since the
create migration is not part of this PR.
@onexbot-occ-writer

Copy link
Copy Markdown
Contributor

OCC autobind did not mint a companion for this PR: no changed-file candidate could be proven RED against the merge base, and emitting a PR-existence probe instead would be non-falsifiable evidence (OMN-15247). Hand-authored evidence is required.

@github-actions

Copy link
Copy Markdown

✅ Architectural Review — PASSED

Errors: 0
Warnings: 0

What this checks

Rule Description
ARCH-TOPIC-001 No hardcoded Kafka topic strings in handler code
ARCH-DI-001 No event_bus=None bypass
ARCH-DI-002 No direct Handler instantiation outside workflow_runner/adapters
ARCH-DI-003 No reinvented DI containers
ARCH-TOPIC-002 contract.yaml topics follow `onex.{cmd

No architectural violations found.

Static architectural lint — no model inference (OMN-14176).

@jonahgabriel
jonahgabriel enabled auto-merge (squash) September 26, 2026 08:01
@github-actions

Copy link
Copy Markdown

✅ Hostile Reviewer — PASSED

Blocking findings (critical/error): 0
Total findings: 11
Models succeeded: qwen3-review,qwen3-review-b


Gate semantics

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)

jonahgabriel added a commit to OmniNode-ai/onex_change_control that referenced this pull request Sep 26, 2026
…market#2937 (#11438)

* evidence(OMN-19550): hand-authored OCC companion for OmniNode-ai/omnimarket#2937

occ-preflight/eligibility declined PR #2937 terminally with
skip:NO_RED_DERIVABLE_CHECK: the diff is a db_io.db_tables ownership
declaration in scripts/application-relation-ownership.yaml plus its
regenerated evidence json and a test-count assertion, none of which is
a code path the producer can derive a RED from. Per OMN-15247 the
remedy is hand-authored evidence.

Appends two dod_evidence entries to the existing OMN-19550 contract
(which already carries entries for omnibase_infra#4154, merged via
#11418, and omnimarket#2905, open via #11275) plus their receipts:

- dod-OmniNode-ai-omnimarket-pr-2937: content-bound probe. The
  session_content ownership declaration (role: session_content) is
  present at the PR head 7826cc6baf and absent at the merge base
  cd220fd03a. No AC of OMN-19550 is bound: #2937 is step 1 of the
  forced three-part order (declare, vendor, create) and proves none of
  AC1-AC6 itself.
- dod-OmniNode-ai-omnimarket-pr-2937-scope: product diff scope, 3
  files, 0 migration SQL files, confirming the PR's own declaration-
  only claim.

Purely additive: every existing OMN-19550 entry and receipt is
byte-identical (verified: recomputed contract_entry_sha256 for the
three pre-existing entries and reproduced their recorded values byte
for byte). Local checks: check_contract_change_rebinds_receipts.py,
check_receipt_hardening.py, check_contract_substance_floor.py and
check_contract_dod_authoring.py all pass; full pre-commit run over the
touched files passes.

OMN-19550

* evidence(OMN-18921): mint the owed OCC self-bind for PR #11438

---------

Co-authored-by: onexbot-occ-writer[bot] <onexbot-occ-writer[bot]@users.noreply.github.com>
@jonahgabriel
jonahgabriel merged commit b7b1b1a into dev Sep 26, 2026
219 of 239 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-19550-session-content-ownership branch September 26, 2026 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant