Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
6e38f16
contracts(OMN-11828,OMN-11972): add self agent PR evidence (#1597)
jonahgabriel May 25, 2026
c8e8bda
contracts(OMN-11994): add infra handler wiring evidence (#1599)
jonahgabriel May 25, 2026
c69609b
contracts(OMN-12006): add omnimarket overlay evidence (#1615)
jonahgabriel May 25, 2026
4c7a23c
contracts(OMN-12116): add dispatch result applier evidence (#1618)
jonahgabriel May 25, 2026
ec6805b
contracts(OMN-11969): bind compat PR receipt (#1620)
jonahgabriel May 25, 2026
f2b02a1
contracts(OMN-12006): bind omnimarket fleet rewrite receipt (#1622)
jonahgabriel May 25, 2026
ad75250
contracts(OMN-12116): bind verified hot-patch deploy receipt (#1627)
jonahgabriel May 25, 2026
c3d38e7
evidence(OMN-12245,OMN-11599): promote release receipts to main (#1712)
jonahgabriel May 26, 2026
96b4c08
evidence(OMN-12245): update OCC rerun state after c3d38e71 (#1713)
github-actions[bot] May 26, 2026
b8bc20b
ci(OMN-12243): add main target guard (#1717)
jonahgabriel May 26, 2026
ad054ca
fix(OMN-12245): remove stale OCC node entry points
jonahgabriel May 26, 2026
848b5b7
evidence(OMN-12245): bind infra PR 1772 head
jonahgabriel May 26, 2026
b78e936
evidence(OMN-12245): bind omnimarket PR 926 head (#1738)
jonahgabriel May 26, 2026
27378d5
evidence(OMN-12245): bind omnimarket PR 926 final head (#1740)
jonahgabriel May 26, 2026
fa97e51
evidence(OMN-12245): refresh omnimarket PR 926 gate head (#1742)
jonahgabriel May 26, 2026
fb44f9f
evidence(OMN-12245): refresh omniintelligence release gates (#1746)
jonahgabriel May 26, 2026
5ecfa8b
evidence(OMN-12245): refresh omniintelligence PR 681 final head (#1748)
jonahgabriel May 26, 2026
89ba53e
evidence(OMN-12245): refresh omniclaude PR 1681 final head
jonahgabriel May 26, 2026
0479254
evidence(OMN-12245): refresh omniclaude PR 1681 workflow head
jonahgabriel May 26, 2026
ef683a8
evidence(OMN-12245): refresh omniclaude PR 1681 CI head (#1754)
jonahgabriel May 26, 2026
3adbc0e
evidence(OMN-12245): refresh omniclaude PR 1681 DoD source head (#1756)
jonahgabriel May 26, 2026
085b90f
evidence(OMN-12245): refresh omniclaude PR 1681 retired-skill head (#…
jonahgabriel May 26, 2026
10a0a2c
evidence(OMN-12245): refresh omniclaude PR 1681 manifest head (#1760)
jonahgabriel May 26, 2026
6f38fcc
evidence(OMN-12245): bind omnibase core PR 1174 (#1770)
jonahgabriel May 27, 2026
d5752cc
evidence(OMN-12245): bind compat runtime DTO hotfix (#1773)
jonahgabriel May 27, 2026
e69b504
evidence(OMN-12245): bind omnimarket runtime proof hotfix (#1775)
jonahgabriel May 27, 2026
aed980b
evidence(OMN-12245): bind infra projection topic hotfix
jonahgabriel May 27, 2026
308a4d0
evidence(OMN-12245): refresh infra 1773 head receipt
jonahgabriel May 27, 2026
4a8e541
evidence(OMN-12245): bind infra 1774 release receipt (#1781)
jonahgabriel May 27, 2026
7cb88b7
evidence(OMN-12245): refresh infra 1774 retry head (#1783)
jonahgabriel May 27, 2026
ab913d0
evidence(OMN-12245): refresh infra 1774 handler scope head (#1785)
jonahgabriel May 27, 2026
055f8e6
evidence(OMN-12245): bind projection runtime hotfixes
jonahgabriel May 27, 2026
2741a40
chore(OMN-12245): baseline omnimarket guard debt on main (#1791)
jonahgabriel May 27, 2026
74849d7
chore(auto-ship): rescue uncommitted work from canonical onex_change_…
jonahgabriel May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .github/workflows/main-target-guard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# SPDX-FileCopyrightText: 2026 OmniNode.ai Inc.
# SPDX-License-Identifier: MIT
#
# OMN-12243: Block PRs targeting main unless they are promotion PRs
# from dev with a promotion receipt, or hotfix PRs with evidence and
# a backmerge link.

name: Main target guard

on:
pull_request:
types: [opened, edited, synchronize]

jobs:
main-target-guard:
name: main-target-guard
runs-on: >-
${{
(github.event.pull_request.head.repo.full_name != github.repository)
&& fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
|| fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
}}
timeout-minutes: 5

steps:
- name: Check PR target branch
env:
BASE_REF: ${{ github.event.pull_request.base.ref }}
HEAD_REF: ${{ github.event.pull_request.head.ref }}
PR_BODY: ${{ github.event.pull_request.body }}
run: |
set -euo pipefail

if [[ "${BASE_REF}" != "main" ]]; then
echo "::notice::PR targets '${BASE_REF}', not main; guard does not apply."
exit 0
fi

echo "PR targets main. Checking head ref: '${HEAD_REF}'"

if [[ "${HEAD_REF}" == "dev" ]]; then
if echo "${PR_BODY}" | grep -qE 'promotion-receipt:[[:space:]]*OCC-[0-9]+'; then
echo "::notice::Promotion PR from dev with valid promotion-receipt. Allowed."
exit 0
fi

echo "::error::PR is from dev but is missing a promotion receipt."
echo "::error::Add a line matching: promotion-receipt: OCC-<number>"
echo "::error::Retarget this PR to dev; main accepts only promotion or hotfix PRs."
exit 1
fi

if [[ "${HEAD_REF}" == hotfix/* ]]; then
MISSING=()

if ! echo "${PR_BODY}" | grep -qE 'hotfix-evidence:[[:space:]]*OCC-[0-9]+'; then
MISSING+=("hotfix-evidence: OCC-<number>")
fi

if ! echo "${PR_BODY}" | grep -qE 'backmerge:[[:space:]]*#[0-9]+'; then
MISSING+=("backmerge: #<pr-number>")
fi

if [[ "${#MISSING[@]}" -eq 0 ]]; then
echo "::notice::Hotfix PR from '${HEAD_REF}' with valid hotfix evidence and backmerge. Allowed."
exit 0
fi

echo "::error::Hotfix PR from '${HEAD_REF}' is missing required fields:"
for field in "${MISSING[@]}"; do
echo "::error:: - ${field}"
done
echo "::error::Retarget this PR to dev; main accepts only promotion or hotfix PRs."
exit 1
fi

echo "::error::PRs targeting main must come from dev or hotfix/*."
echo "::error::Head ref '${HEAD_REF}' is not permitted to target main directly."
echo "::error::Retarget this PR to dev; main accepts only promotion or hotfix PRs."
exit 1
13 changes: 13 additions & 0 deletions allowlists/omniintelligence.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ allowlisted_handlers:
- missing_handler_routing
- logic_in_node
ticket: '# migration pending'
- path: omniintelligence/nodes/node_anti_gaming_alerter_effect/handlers/protocols.py
violations:
- missing_handler_routing
- logic_in_node
ticket: '# migration pending'
- path: omniintelligence/nodes/node_ast_extraction_compute/handlers/handler_ast_extract.py
violations:
- logic_in_node
Expand Down Expand Up @@ -530,3 +535,11 @@ allowlisted_handlers:
violations:
- missing_handler_routing
ticket: '# migration pending'
- path: omniintelligence/nodes/node_intent_graph_reducer/handlers/handler_intent_graph_update.py
violations:
- missing_handler_routing
ticket: '# migration pending'
- path: omniintelligence/nodes/node_objective_ab_framework_compute/handlers/handler_ab_framework.py
violations:
- logic_in_node
ticket: '# migration pending'
26 changes: 26 additions & 0 deletions allowlists/omnimarket.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1056,3 +1056,29 @@ allowlisted_handlers:
violations:
- hybrid
ticket: '# migration pending'
- path: omnimarket/nodes/node_generate_node_effect/handlers/handler_generate_node.py
violations:
- missing_handler_routing
ticket: OMN-12230
- path: omnimarket/nodes/node_log_persistence_effect/handlers/handler_log_persistence_effect.py
violations:
- undeclared_transport
ticket: OMN-12132
- path: omnimarket/nodes/node_observability_sink_effect/handlers/handler_observability_sink_effect.py
violations:
- missing_handler_routing
ticket: OMN-12217
- path: omnimarket/nodes/node_pr_lifecycle_fix_effect/handlers/adapter_occ_contract.py
violations:
- missing_handler_routing
- hardcoded_topic
ticket: OMN-10278
- path: omnimarket/nodes/node_routing_policy_engine/handlers/handler_score_lookup.py
violations:
- missing_handler_routing
ticket: OMN-8040
- path: omnimarket/nodes/node_ticketing_epic_org_orchestrator/handlers/handler_ticketing_epic_org.py
violations:
- imperative
- hardcoded_topic
ticket: OMN-12202
30 changes: 30 additions & 0 deletions contracts/OMN-11599.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-11599"
title: "Migrate agent_router to node structure"
summary: >
OCC evidence for omniclaude PR #1677. The change adds node_agent_router as a typed COMPUTE_GENERIC node
wrapper around the legacy AgentRouter while preserving the existing hook-compatible router path.
is_seam_ticket: false
interface_change: false
interfaces_touched: []
emergency_bypass:
enabled: false
justification: ""
follow_up_ticket_id: ""
dod_evidence:
- id: "dod-agent-router-unit-tests"
description: "Agent router node unit tests pass on omniclaude PR #1677 head."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11599/dod-agent-router-unit-tests/command.yaml
&& grep -q '17 passed' drift/dod_receipts/OMN-11599/dod-agent-router-unit-tests/command.yaml"
- id: "dod-occ-promotion-pr-1712"
description: "OCC main-promotion PR #1712 carries OMN-11599 router evidence onto main."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "gh pr view ${PR_NUMBER} --repo ${REPO} --json headRefOid,state,title"
51 changes: 51 additions & 0 deletions contracts/OMN-11828.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-11828"
title: "Harden self-extending agent sandbox response handling"
summary: >
Central OCC evidence for onex-self-extending-agent PR #128, which tightens generated-handler sandbox
guidance and guards ADK-wrapped registration responses so only object payloads replace the parsed response
map.
is_seam_ticket: false
interface_change: false
interfaces_touched: []
emergency_bypass:
enabled: false
justification: ""
follow_up_ticket_id: ""
dod_evidence:
- id: "dod-onex-self-extending-agent-pr-128"
description: "onex-self-extending-agent PR #128 carries the OMN-11828 sandbox and ADK response handling
fix."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11828/dod-onex-self-extending-agent-pr-128/command.yaml
&& grep -q '^pr_number: 128$' drift/dod_receipts/OMN-11828/dod-onex-self-extending-agent-pr-128/command.yaml"
- id: "dod-local-validation"
description: "Focused unit tests and lint passed for the ADK unwrap guard."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11828/dod-local-validation/command.yaml
&& grep -q 'pytest tests/unit/test_main.py' drift/dod_receipts/OMN-11828/dod-local-validation/command.yaml
&& grep -q 'ruff check' drift/dod_receipts/OMN-11828/dod-local-validation/command.yaml"
- id: "dod-coderabbit-thread"
description: "CodeRabbit ADK unwrap review thread was addressed by guarding decoded result payload
type."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11828/dod-coderabbit-thread/command.yaml
&& grep -q 'PRRT_kwDOSfXbW86EcyHq' drift/dod_receipts/OMN-11828/dod-coderabbit-thread/command.yaml"
- id: "dod-occ-pr-1597"
description: "onex_change_control PR #1597 carries the central OMN-11828 contract and receipt bundle."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11828/dod-occ-pr-1597/command.yaml
&& grep -q '^pr_number: 1597$' drift/dod_receipts/OMN-11828/dod-occ-pr-1597/command.yaml"
26 changes: 21 additions & 5 deletions contracts/OMN-11969.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ dod_evidence:
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-omninode-infra-pr-461/command.yaml
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-omninode-infra-pr-461/command.yaml
&& grep -q '^pr_number: 461$' drift/dod_receipts/OMN-11969/dod-omninode-infra-pr-461/command.yaml"
- id: "dod-local-validation"
description: "Focused local validation passed for shellcheck and Kubernetes kustomize rendering."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-local-validation/command.yaml
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-local-validation/command.yaml
&& grep -q 'shellcheck' drift/dod_receipts/OMN-11969/dod-local-validation/command.yaml && grep
-q 'kubectl kustomize' drift/dod_receipts/OMN-11969/dod-local-validation/command.yaml"
- id: "dod-coderabbit-thread"
Expand All @@ -38,7 +38,7 @@ dod_evidence:
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-coderabbit-thread/command.yaml
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-coderabbit-thread/command.yaml
&& grep -q 'isResolved=true' drift/dod_receipts/OMN-11969/dod-coderabbit-thread/command.yaml"
- id: "dod-deploy-assessment"
description: "No live production deploy was performed in this sweep; PR records cloud-dev runtime
Expand All @@ -47,13 +47,29 @@ dod_evidence:
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-deploy-assessment/command.yaml
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-deploy-assessment/command.yaml
&& grep -qi 'no live production deploy' drift/dod_receipts/OMN-11969/dod-deploy-assessment/command.yaml"
- id: "dod-occ-pr-1595"
description: "onex_change_control PR #1595 carries the central OMN-11969 contract and receipt bundle."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-occ-pr-1595/command.yaml
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-occ-pr-1595/command.yaml
&& grep -q '^pr_number: 1595$' drift/dod_receipts/OMN-11969/dod-occ-pr-1595/command.yaml"
- id: "dod-compat-pr-108"
description: "omnibase_compat PR #108 carries the OMN-11969 delegation wire model compatibility updates."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-compat-pr-108/command.yaml
&& grep -q '^pr_number: 108$' drift/dod_receipts/OMN-11969/dod-compat-pr-108/command.yaml"
- id: "dod-occ-pr-1620"
description: "onex_change_control PR #1620 carries the OMN-11969 compat PR #108 receipt repair."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "cd /tmp/onex_change_control && grep -q '^status: PASS$' drift/dod_receipts/OMN-11969/dod-occ-pr-1620/command.yaml
&& grep -q '^pr_number: 1620$' drift/dod_receipts/OMN-11969/dod-occ-pr-1620/command.yaml"
50 changes: 50 additions & 0 deletions contracts/OMN-11972.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-11972"
title: "Unwrap ADK response payloads for self-extending agent registration"
summary: >
Central OCC evidence for onex-self-extending-agent PR #128, which fixes the ADK response-wrapper mismatch
for generated tool registration and guards non-object result payloads from replacing the parsed response
map.
is_seam_ticket: false
interface_change: false
interfaces_touched: []
emergency_bypass:
enabled: false
justification: ""
follow_up_ticket_id: ""
dod_evidence:
- id: "dod-onex-self-extending-agent-pr-128"
description: "onex-self-extending-agent PR #128 carries the OMN-11972 ADK response unwrap fix."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11972/dod-onex-self-extending-agent-pr-128/command.yaml
&& grep -q '^pr_number: 128$' drift/dod_receipts/OMN-11972/dod-onex-self-extending-agent-pr-128/command.yaml"
- id: "dod-local-validation"
description: "Focused unit tests and lint passed for the ADK unwrap behavior."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11972/dod-local-validation/command.yaml
&& grep -q 'pytest tests/unit/test_main.py' drift/dod_receipts/OMN-11972/dod-local-validation/command.yaml
&& grep -q 'ruff check' drift/dod_receipts/OMN-11972/dod-local-validation/command.yaml"
- id: "dod-coderabbit-thread"
description: "CodeRabbit ADK unwrap review thread was addressed by guarding decoded result payload
type."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11972/dod-coderabbit-thread/command.yaml
&& grep -q 'PRRT_kwDOSfXbW86EcyHq' drift/dod_receipts/OMN-11972/dod-coderabbit-thread/command.yaml"
- id: "dod-occ-pr-1597"
description: "onex_change_control PR #1597 carries the central OMN-11972 contract and receipt bundle."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11972/dod-occ-pr-1597/command.yaml
&& grep -q '^pr_number: 1597$' drift/dod_receipts/OMN-11972/dod-occ-pr-1597/command.yaml"
50 changes: 50 additions & 0 deletions contracts/OMN-11994.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-11994"
title: "Fix handler wiring text array adaptation"
summary: >
Central OCC evidence for omnibase_infra PR #1730, which fixes the synchronous psycopg2 handler-wiring
adapter so Postgres text[] list values pass through as native list parameters while dict values remain
JSON-adapted.
is_seam_ticket: false
interface_change: false
interfaces_touched: []
emergency_bypass:
enabled: false
justification: ""
follow_up_ticket_id: ""
dod_evidence:
- id: "dod-omnibase-infra-pr-1730"
description: "omnibase_infra PR #1730 carries the OMN-11994 handler_wiring text[] adaptation fix."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11994/dod-omnibase-infra-pr-1730/command.yaml
&& grep -q '^pr_number: 1730$' drift/dod_receipts/OMN-11994/dod-omnibase-infra-pr-1730/command.yaml"
- id: "dod-local-validation"
description: "Focused integration coverage and lint passed for psycopg2 text[] list adaptation."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11994/dod-local-validation/command.yaml
&& grep -q 'test_projection_handler_db_injection_integration.py' drift/dod_receipts/OMN-11994/dod-local-validation/command.yaml
&& grep -q 'ruff check' drift/dod_receipts/OMN-11994/dod-local-validation/command.yaml"
- id: "dod-deploy-assessment"
description: "No live deploy was performed; change is source-level adapter behavior with CI/deploy
gates expected to validate before merge."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11994/dod-deploy-assessment/command.yaml
&& grep -qi 'no live deploy' drift/dod_receipts/OMN-11994/dod-deploy-assessment/command.yaml"
- id: "dod-occ-pr-1599"
description: "onex_change_control PR #1599 carries the central OCC evidence for OMN-11994."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "grep -q '^status: PASS$' drift/dod_receipts/OMN-11994/dod-occ-pr-1599/command.yaml
&& grep -q '^pr_number: 1599$' drift/dod_receipts/OMN-11994/dod-occ-pr-1599/command.yaml"
Loading