Skip to content

fix(OMN-19344): declare migration 0045's class so the declaration check passes on dev - #4052

Merged
jonahgabriel merged 2 commits into
devfrom
jonah/omn-19344-declare-0045-class
Sep 24, 2026
Merged

jonahgabriel merged 2 commits into
devfrom
jonah/omn-19344-declare-0045-class

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

What

Adds one line to config/migration_classes.yaml: it declares forward/nodes/node_projection_delegation/0045_terminal_construction_outcome_metrics.sql as forward-only.

Why

omnibase_infra#3945 added the 0045 migration. omnibase_infra#4039 then merged the migration class gate, but that PR's declaration file was written before 0045 existed. Since then the whole-tree Node Migration Declaration Check has failed on dev. It was read failing on a7ea811c5, and every omnibase_infra PR inherits the failure. The same checker runs as the onex-check-migration-class pre-commit hook, and it fails under pre-commit run --all-files on a clean dev worktree.

The class comes from the checker itself: check_migration_class.py --suggest prints forward-only # CREATE OR REPLACE (replaces an existing object); ALTER VIEW. Declaring forward-only is the conservative reading, and its only cost is that this migration is not eligible for rollback. The applied migration file is not changed.

Ticket: OMN-19344 (the migration class gate this entry belongs to).

Runtime-affecting?

No. scripts/trigger_rebuild_on_merge.py --dry-run on config/migration_classes.yaml printed No rebuild trigger. The positive control, src/omnibase_infra/runtime/service_delegation_dispatch_port.py, printed Runtime change detected. This PR lands through pr-land, not through the runtime train.

Lab readback

This is a config-only change. No lab runtime reads this file. It is read by the CI checker and by the pre-commit hook only.

  • RED, clean dev worktree a7ea811c5: pre-commit run --all-files gave ONEX Migration Class Declaration (OMN-19344) ... Failed, with 0045_terminal_construction_outcome_metrics.sql: no declared class.
  • GREEN, this branch: uv run --frozen python scripts/validation/check_migration_class.py printed migration-class: OK -- 330 forward migrations declared (188 rollback barriers, 1 recorded down executions) and exited 0.
  • restored=n/a (nothing on a lab was touched)

Evidence-Ticket: OMN-19344
Evidence-Source: OCC#11051

…ck passes on dev

omnibase_infra#3945 added forward/nodes/node_projection_delegation/0045_terminal_construction_outcome_metrics.sql.
omnibase_infra#4039 then merged the migration class gate with a declaration file written before 0045 existed.
Since then the whole-tree Node Migration Declaration Check fails on dev (read on a7ea811), and every omnibase_infra PR inherits the red.

The entry is the checker's own reading (check_migration_class.py --suggest): forward-only, CREATE OR REPLACE plus ALTER VIEW.
Applied migration bytes are unchanged.
@onexbot-occ-writer

Copy link
Copy Markdown
Contributor

No OCC evidence companion was minted for this PR.

product PR is a draft; companion suppressed (F-17)

Matched in the state: draft

To clear this: Mark the PR ready for review. The ready_for_review trigger re-fires the born path and the companion mints then.

Reported by node_occ_companion_effect (decline code pr_draft, 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 marked this pull request as ready for review September 24, 2026 10:13
@jonahgabriel
jonahgabriel enabled auto-merge (squash) September 24, 2026 10:14
@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.

jonahgabriel pushed a commit to OmniNode-ai/onex_change_control that referenced this pull request Sep 24, 2026
#11051)

* evidence: OCC companion pass 1 for OmniNode-ai/omnibase_infra#4052

* evidence: OCC companion self-bind for #11051

---------

Co-authored-by: node-occ-companion-effect <occ-companion-effect@omninode.ai>

@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): 3
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: 3 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] config/migration_classes.yaml:229 (glm-review) — Migration file itself absent from diff | The diff only adds a registry entry for 0045_terminal_construction_outcome_metrics.sql but does not include the migration file it references. The change cannot
  • [MAJOR] config/migration_classes.yaml:229 (glm-review) — CREATE OR REPLACE on a view without dependency analysis | CREATE OR REPLACE VIEW silently changes column definitions and can break downstream consumers if column order, names, or types shift. Postgres
  • [MINOR] config/migration_classes.yaml:229 (glm-review) — View replacement and row-level security interaction unverified | Adjacent migrations in the same directory enable and force row-level security. If the view wraps a table with RLS and is owned by a rol

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ Hostile Reviewer — DEGRADED (informational)

Critical findings: 1
Major findings: 2
Total findings: 5
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)

The first CI run on this PR was created by the draft open event and cancelled by the ready flip; its
cancelled matrix row can only be replaced by a new head, never by a rerun.

Onex-Lane: wr-recovery
Onex-Session: b72b1e0ec3d948e7a7a956cd4f45e013

@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): 5
Nit-level findings suppressed: 0

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: 5 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.

  • [CRITICAL] config/migration_classes.yaml (glm-review) — Migration registered without migration file in review | The diff registers 0045_terminal_construction_outcome_metrics.sql in the migration manifest but does not include the migration SQL itself. A for
  • [MAJOR] config/migration_classes.yaml (glm-review) — CREATE OR REPLACE on a view permits silent column drift | CREATE OR REPLACE VIEW only permits appending columns at the end; changing column types, names, or removing columns fails or silently changes
  • [MAJOR] config/migration_classes.yaml (glm-review) — No RLS annotation while sibling migrations enforce row level security | Adjacent migrations in this directory (0043, 0043z, 0044) explicitly annotate ENABLE/DISABLE/FORCE ROW LEVEL. The new entry has
  • [MINOR] config/migration_classes.yaml (glm-review) — ALTER VIEW purpose unstated | The comment lists ALTER VIEW but does not indicate which operation (SET SCHEMA, RENAME, SET security_invoker, owner change). ALTER VIEW SET SECURITY in particular changes
  • [MINOR] config/migration_classes.yaml (glm-review) — CREATE OR REPLACE is not atomic with dependent recompiles under load | Replacing a view that other views or prepared statements depend on causes recompilation at first use post-deploy. Under concurren

@jonahgabriel
jonahgabriel merged commit 4942aba into dev Sep 24, 2026
129 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-19344-declare-0045-class branch September 24, 2026 11:25
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