Repository navigation
feat(infra): add isolated dogfood lane (OMN-18693) - #3840
Conversation
|
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 |
…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>
|
| 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)
There was a problem hiding this comment.
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 finaldocker compose ... build --print | jq -erpipelin - [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
b5b37d3 to
11d0945
Compare
…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
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, and49302.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.shrequires an absolute privateOMNIBASE_INFRA_DEPLOY_ROOTfor 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 passeddocker 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 --quietwith render-only required inputs — passed; JSON render selected the ten declared dogfood servicesuv run --no-project --no-sync --python "$OMNI_HOME/omnibase_infra/.venv/bin/python" pre-commit run --all-files— passedOCC
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