Repository navigation
fix(OMN-17887): declare the tenant domain in public, retire the tenant schema - #2847
Conversation
…t schema Operator ruling 2026-09-24: no tenant Postgres schema will be built; the TENANT domain lives in public for good. Every node contract db_io declaration and ownership-manifest entry that named schema tenant now names public, the schema the relation actually lives in. The typed topology already resolves application.public to TENANT on every shipped profile, so domain, physical schema and binding are unchanged (180/180 resolver targets identical across 9 profiles). The relation inventory maps public to TENANT and drops tenant, so a stale tenant declaration is blocked as unresolvable. Tests that pinned the old name now pin public; a new test forbids tenant declarations.
✅ Architectural Review — PASSEDErrors: 0 What this checks
No architectural violations found. Static architectural lint — no model inference (OMN-14176). |
✅ Hostile Reviewer — PASSEDBlocking findings (critical/error): 0 Gate semantics
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524) |
…nimarket#2847 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/36004412875
…2847 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head 7453e900377cd3dfe321a2f871f38087900ecb87.
…nimarket#2847 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/36004523248
…imarket#2847 (#11079) * evidence(OMN-17887): author OCC companion for OmniNode-ai/omnimarket#2847 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head 7453e900377cd3dfe321a2f871f38087900ecb87. * evidence(OMN-17887): self-bind OCC#11079 + rebind contract_sha256 * evidence(OMN-16859): executed test_passes receipts for OmniNode-ai/omnimarket#2847 The declared checks were executed for real in the OmniNode-ai/omnimarket checkout at the PR head by the product-repo OCC receipt runner, and the results written append-only into this companion. Producer-minted PENDING receipts are superseded by a net-new record; no existing receipt was edited. Ticket: OMN-16859 (AC3b) Onex-Workflow: OCC Receipt Runner Onex-Run: https://github.com/OmniNode-ai/omnimarket/actions/runs/36004523248 --------- Co-authored-by: omnimarket-bot <bot@omninode.ai> Co-authored-by: onexbot-occ-writer[bot] <307849072+onexbot-occ-writer[bot]@users.noreply.github.com>
|
Close-out. Merged 2026-09-24T19:49:37Z as In short: this PR had no human review comments and no review threads. The two bot comments were the Architectural Review, which passed with 0 errors and 0 warnings, and the Hostile Reviewer, which passed with both models up: 16 findings, 0 blocking. None of the 16 reached quorum, so they were reported and not threaded, and I didn't answer them here before merge. The PR is a single commit, so nothing was changed for them. Most of them read the change as moving tenant data from a Point by pointThe findings are in the job log of the Hostile Reviewer run on the only head, 1. "Tenant data moved to 2. " 3. "The 4. "No migration moves the existing tables from 5. "No test shows that no PUBLIC-domain relation is now misclassified" (info, qwen3-review) 6. " 7. "The ownership YAML comment refers to a defect that doesn't exist" (info, qwen3-review) 8. Style in the new test: loading the script with The two issue comments
Thank you! |
Summary
OMN-17887, step 1 of 4. Operator ruling 2026-09-24: no
tenantPostgres schema will be built, and the TENANT domain lives inpublicfor good. This PR makes omnimarket declarepublicwherever it declaredtenant.What changed
schema: tenantdeclarations now sayschema: public, the schema the relations actually live in. That is 20 in 13 node contracts and 14 inscripts/application-relation-ownership.yaml.scripts/generate_application_relation_inventory.pymapspublicto TENANT and no longer knowstenant, so a staletenantdeclaration is blocked as unresolvable instead of passing. The relation inventory underdocs/evidence/is regenerated:tenanttopublicand stay TENANT-domain.hook_events' 2 rows move from PUBLIC to TENANT.update_hook_events_updated_at, previously blocked asunresolved, is now classified.tests/unit/scripts/test_tenant_schema_retired_omn17887.py, forbidstenantdeclarations, with a positive control on its YAML walker. Five tests that pinnedtenantnow pinpublic, and none was deleted. The strict-wiring test's guidance no longer sayspublicis disallowed.How it was verified
application.publicas TENANT on all 9 profiles._resolve_projection_database_targetreturns identical results before and after for all 180 targets across those profiles: same physical schema, domain and read and write bindings. A made-up schema name still raises.1bb84db5.--checkpasses.-m "not kafka", serial): 23,500 passed, 19 failed, 8 errors. Those 27 are the identical set that fails on untoucheddev192b1ed8on the same machine: pre-push hook, wire-compatibility release, pnpm, and real-Postgres fixtures. None comes from this change.Local gates
--no-verify, noSKIP=, no--no-gpg-sign, nocore.hooksPathoverride. Every pre-commit and pre-push hook ran.Not in this change
handler_tenant_credentials_projection.py's comment about the bridge is left as it was. Editing it trips the projection write-path real-DB gate for a comment-only change; it goes with the infra follow-up.Evidence-Ticket: OMN-17887
Evidence-Source: OCC#11079