Repository navigation
fix(OMN-19344): declare migration 0045's class so the declaration check passes on dev - #4052
Conversation
…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.
|
No OCC evidence companion was minted for this PR. product PR is a draft; companion suppressed (F-17) Matched in the state: 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 |
|
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. |
#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>
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): 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
|
| 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
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): 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
What
Adds one line to
config/migration_classes.yaml: it declaresforward/nodes/node_projection_delegation/0045_terminal_construction_outcome_metrics.sqlasforward-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 ona7ea811c5, and every omnibase_infra PR inherits the failure. The same checker runs as theonex-check-migration-classpre-commit hook, and it fails underpre-commit run --all-fileson a cleandevworktree.The class comes from the checker itself:
check_migration_class.py --suggestprintsforward-only # CREATE OR REPLACE (replaces an existing object); ALTER VIEW. Declaringforward-onlyis 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-runonconfig/migration_classes.yamlprintedNo rebuild trigger. The positive control,src/omnibase_infra/runtime/service_delegation_dispatch_port.py, printedRuntime 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.
devworktreea7ea811c5:pre-commit run --all-filesgaveONEX Migration Class Declaration (OMN-19344) ... Failed, with0045_terminal_construction_outcome_metrics.sql: no declared class.uv run --frozen python scripts/validation/check_migration_class.pyprintedmigration-class: OK -- 330 forward migrations declared (188 rollback barriers, 1 recorded down executions)and exited 0.Evidence-Ticket: OMN-19344
Evidence-Source: OCC#11051