Skip to content

feat(infra): add isolated dogfood lane (OMN-18693) - #3840

Merged
jonahgabriel merged 8 commits into
devfrom
jonah/omn-18693-dogfood-lane-infra
Sep 19, 2026
Merged

jonahgabriel merged 8 commits into
devfrom
jonah/omn-18693-dogfood-lane-infra

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Sep 19, 2026 •

Copy link
Copy Markdown
Collaborator

OMN-18693

Adds a prospective isolated dogfood lane for delegation dogfooding. The lane uses a standalone compose definition with private Postgres, Valkey, Redpanda, network, volumes, container names, and ports 49085, 49086, 47092, 47644, 49436, 49379, and 49302.

It adds typed runtime-policy and database-topology profiles, a lane-specific Bifrost overlay, a prospective census entry, and dogfood selection in the runtime build/deploy plumbing. deploy-runtime.sh requires an absolute private OMNIBASE_INFRA_DEPLOY_ROOT for this lane so staged state, locks, registries, and tags remain isolated. The dogfood resolver uses only its complete standalone compose file and restarts only services it declares.

No runtime deployment, restart, secret change, or live-service claim is included in this PR.

Validation

  • PYTHONPATH="$PWD/src" uv run --no-project --no-sync --python "$OMNI_HOME/omnibase_infra/.venv/bin/python" pytest -q tests/scripts/test_cut_lab_ref.py tests/scripts/test_deploy_runtime_lane_overlay.py tests/integration/infra/test_dogfood_compose_render.py tests/ci/test_runtime_policy_contract.py tests/unit/scripts/test_lane_census_manifest_parity.py tests/unit/topology/test_application_database_topology.py — 81 passed
  • docker compose -p omnibase-infra-dogfood --env-file docker/runtime-policy.env --env-file docker/dogfood.env.example -f docker/docker-compose.dogfood.yml --profile dogfood config --quiet with render-only required inputs — passed; JSON render selected the ten declared dogfood services
  • uv run --no-project --no-sync --python "$OMNI_HOME/omnibase_infra/.venv/bin/python" pre-commit run --all-files — passed

OCC

The deploy-scope pre-push gate reported NOTICE_COMPANION_UNMERGED; the OMN-18693 OCC companion and receipt evidence will bind through the automatic workflow before any merge or deployment decision.

Evidence-Ticket: OMN-18693
Evidence-Source: OCC#10429

@onexbot-occ-writer

Copy link
Copy Markdown
Contributor

No OCC evidence companion was minted for this PR.

this PR is already bound to OCC#10429; 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 pushed a commit to OmniNode-ai/onex_change_control that referenced this pull request Sep 19, 2026
…ibase_infra#3840 (#10429)

* evidence(OMN-18693): author OCC companion for OmniNode-ai/omnibase_infra#3840

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

* evidence(OMN-18693): self-bind OCC#10429 + rebind contract_sha256

---------

Co-authored-by: omnimarket-bot <bot@omninode.ai>
@github-actions

github-actions Bot commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ Hostile Reviewer — DEGRADED (informational)

Critical findings: 0
Major findings: 0
Total findings: 0
Models succeeded: glm-review

Note: Fewer than 2 reviewer models succeeded. Degraded results are informational (OMN-8468/OMN-8524) and do not block merge. Error: cli_review exit 2 (fewer than 2 models succeeded — partial/total outage)


Semantics (OMN-17492 — the model finds, thread resolution gates)

Surface Meaning Blocks merge?
Review threads Per-finding, posted by the reviewer No (informational)
Hostile Review Thread Gate Deterministic: unresolved hostile-reviewer threads exist Fails until resolved (not yet a required context)
degraded verdict Fewer than 2 models succeeded (infra) No

Powered by omniintelligence.review_pairing.cli_review — multi-model adversarial review: qwen3-review, qwen3-review-b, glm-review (OMN-8468/OMN-8524/OMN-17492)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hostile Reviewer — adversarial findings (OMN-17492)

Models succeeded: glm-review
Models failed: codex
New finding threads: 0
Deduped (already posted on this PR): 0
Below quorum (one model only, reported not threaded): 9
Nit-level findings suppressed: 1

The model is the FINDER, never the gate: merge is gated only by the
deterministic Hostile Review Thread Gate, which blocks while
hostile-reviewer threads are unresolved. Resolve each thread after
addressing (or rejecting, with a reply) its finding.

Below quorum: 9 finding(s) raised by one model only (OMN-18479)

These are reported and NOT dropped, but they get no thread and do not block: a single model's finding no other model reproduced is not evidence enough to stop a merge. Read them; act on them if they are right.

  • [MAJOR] scripts/deploy-runtime.sh (glm-review) — DEPLOY_ROOT env override is unguarded for all non-dogfood lanes | The diff makes DEPLOY_ROOT settable from the environment for every lane, but the new guard_dogfood_deploy_root validates absoluteness
  • [MAJOR] docker/migrations/forward/_ledger/application-migrations.tsv (glm-review) — Migration ledger lists grant 0001 before table creation 0000 | The appended TSV rows order node_projection_runner_fleet/0001 (the omninode_runtime grant) above 0000 (CREATE TABLE runner_fleet_liveness
  • [MAJOR] config/worktree_prune_timer.yaml; scripts/worktree_prune_timer.py (glm-review) — Consent citation keyed to mutable line number | worktree_prune_timer.py resolves consent_citation as : into a rolling ledger. ROLLING_WORK_LEDGER.md is by construction append-heavy; any in
  • [MINOR] .github/workflows/dependency-cascade.yml (glm-review) — Provenance fix sanitizes the block but leaves raw inputs.package interpolations | The diff adds a validated PACKAGE output and routes the provenance block through it, with a comment stating inputs.pac
  • [MINOR] scripts/deploy-runtime.sh; scripts/runtime_build/compose_files.sh (glm-review) — Dogfood compose project name hardcoded in three independent places | The literal omnibase-infra-dogfood is now matched in resolve_lane_runtime_services, guard_dogfood_deploy_root, and resolve_compose_
  • [MINOR] scripts/deploy-runtime.sh, resolve_built_runtime_image() (glm-review) — resolve_built_runtime_image build-plan fallback can exit nonzero under set -e | The rewritten function returns early on the image path but the final docker compose ... build --print | jq -er pipelin
  • [MINOR] docker/runners/runner-monitor.sh, emit_fleet_observation() (glm-review) — Fleet emit fail-soft ladder has no dead-man signal | Every rung of emit_fleet_observation returns 0 and logs: disabled builder, unreadable API, publish failure, empty event. The result is that the new
  • [MINOR] docker/docker-compose.dogfood.yml (glm-review) — Postgres password interpolated unescaped into DSNs | The dogfood compose builds postgresql:// URIs by direct string interpolation of POSTGRES_PASSWORD, OMNINODE_RUNTIME_PASSWORD, and TENANT_PROJECTION
  • [MINOR] docker/lane-overlays/dogfood.bifrost.yaml (glm-review) — Disabled backend still pins live internal IP in tracked source | dogfood.bifrost.yaml carries literal LAN addresses 192.168.86.201 and 192.168.86.200 in a committed file, with an onex-allow-internal-i

Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: 386f18b010074e98bf3b8e3b34516d8b
Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: 386f18b010074e98bf3b8e3b34516d8b
Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: b4cf036912f54b249908f856299f6083
Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: b4cf036912f54b249908f856299f6083
…leet_liveness ownership

The Application Database Domain Enforcement (OMN-15361) gate failed on this
PR because the pinned omnimarket contract set (168a66fd, the current dev
pin) predates omnimarket#2672 (OMN-18768), which declared ownership for
omninode_internal.runner_fleet_liveness and its projection-cursor sequence.
That migration already exists on omnibase_infra dev; the gate flags it as
unowned on every open PR until the pin advances, per the pin file's own
staleness note.

Advances the pin to omnimarket dev HEAD (612980ace) and regenerates the
derived TABLE grants / rendered catalogs via
scripts/generate_application_database_table_grants.py --write, per the pin
file's own instructions. Verified locally: scripts/ci/check_application_database_sql.py
now reports application_database_sql_gate=PASS.

Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: f063e2f3b02349b29931d593e0d10cd5
…r new grant migrations

- tests/unit/scripts/validation/test_application_migration_manifest.py: bump
  the checked-in declaration count 190 -> 195 for this PR's five
  tenant_projection_writer GRANT-only migrations (ordering the dogfood lane's
  writer role onto five house-tenant relations ahead of the writer's own DDL).
- config/skip_count_baseline.yaml: record the 3 newly-collected
  @pytest.mark.integration @pytest.mark.postgres node ids from
  tests/integration/migrations/test_102_tenant_projection_writer_role_omn15425.py
  (live-cluster owner-lineage proofs, deselected by design on this job like
  every other postgres-marked test in that file) and advance max_skips 547 ->
  550 to match.

Both verified locally: pytest tests/unit/scripts/validation/test_application_migration_manifest.py
and tests/ci/test_skip_count_ratchet_omn18776.py pass.

Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: f063e2f3b02349b29931d593e0d10cd5
@jonahgabriel
jonahgabriel force-pushed the jonah/omn-18693-dogfood-lane-infra branch from b5b37d3 to 11d0945 Compare September 19, 2026 21:37
…ate)

Packaged source (topology instances, database-topology catalogs) changed in
this PR; the release-identity gate (OMN-13412) requires project.version to be
strictly ahead of the latest published version before merge. Verified
locally: scripts/check_release_identity.py reports version 0.38.34 is ahead
of latest published 0.38.33.

Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: f063e2f3b02349b29931d593e0d10cd5
…ter version bump

scripts/ci/runner_image_identity.py hashes uv.lock content into
shared_env_digest; the pyproject.toml/uv.lock version bump in the previous
commit shifted it, so the runner-image-build-smoke job's staleness check
failed. Regenerated via scripts/ci/runner_image_identity.py --mode generate
per that job's own remediation message.

Onex-Lane: codex-lane2-hotpatch-dogfood-prompt-draft-1415
Onex-Session: f063e2f3b02349b29931d593e0d10cd5
@jonahgabriel
jonahgabriel merged commit 5750148 into dev Sep 19, 2026
227 of 233 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-18693-dogfood-lane-infra branch September 19, 2026 22:23
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