Skip to content

chore(OMN-13452): bump pydantic-settings to 2.14.2 - #731

Merged
jonahgabriel merged 2 commits into
devfrom
dependabot/OMN-13452/pydantic-settings-2.14.2
Jun 22, 2026
Merged

chore(OMN-13452): bump pydantic-settings to 2.14.2#731
jonahgabriel merged 2 commits into
devfrom
dependabot/OMN-13452/pydantic-settings-2.14.2

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Ticketed replacement for Dependabot PR #730, carrying the same pydantic-settings 2.14.2 security bump rebased on current dev so receipt-gate identity can bind to OMN-13452.

Original PR: #730

Validation:

  • uv run pytest tests/unit/runtime/test_dispatch_handlers.py::TestCreateIntelligenceDispatchEngine::test_engine_has_expected_handlers tests/unit/runtime/test_dispatch_handlers.py::TestCreateIntelligenceDispatchEngine::test_engine_has_expected_routes tests/unit/runtime/test_plugin_dispatch.py::TestPluginWireDispatchers::test_wire_dispatchers_engine_has_expected_routes tests/unit/runtime/test_plugin_dispatch.py::TestPluginWireDispatchers::test_wire_dispatchers_engine_has_expected_handlers -q
  • pre-commit run --files uv.lock tests/unit/runtime/test_dispatch_handlers.py tests/unit/runtime/test_plugin_dispatch.py

Evidence-Ticket: OMN-13452
Evidence-Source: 95e25aeca368ec6bd0d10120225e3aa8a243c594

dependabot Bot and others added 2 commits June 22, 2026 19:02
Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.14.0 to 2.14.2.
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](pydantic/pydantic-settings@v2.14.0...v2.14.2)

---
updated-dependencies:
- dependency-name: pydantic-settings
  dependency-version: 2.14.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8201d7be-47f2-4fe4-a873-7d223cca8912

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dependabot/OMN-13452/pydantic-settings-2.14.2

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
github-actions Bot enabled auto-merge June 22, 2026 19:50
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 22, 2026
Merged via the queue into dev with commit c19df5e Jun 22, 2026
82 of 84 checks passed
@jonahgabriel
jonahgabriel deleted the dependabot/OMN-13452/pydantic-settings-2.14.2 branch June 22, 2026 20:12
jonahgabriel added a commit that referenced this pull request Jul 3, 2026
…4.0) (#749)

* feat(OMN-11881): normalize version field in all 63 contracts (#672)

Replaces `contract_version: {major: X, minor: Y, patch: Z}` dict format
with top-level `version: "X.Y.Z"` string in all 63 omniintelligence contracts.
Updates test_contract_validation.py to enforce the new string format.

* fix(OMN-12165): Fix datetime.now() in omniintelligence handler (#674)

Replace naive datetime.now() with datetime.now(timezone.utc) for
last_updated and generated_at fields in handler_onextree_generator.py.

* fix(OMN-12167): Add contract.yaml for 4 omniintelligence nodes (#675)

Adds contract.yaml for four nodes missing topology coverage:
- node_tcb_generation_compute (COMPUTE_GENERIC): TCB intent normalization and candidate scoring
- node_intent_graph_reducer (REDUCER_GENERIC): directed intent transition graph accumulator with state_machine
- node_anti_gaming_alerter_effect (EFFECT_GENERIC): Kafka alert publisher, Kafka event bus declared
- node_objective_ab_framework_compute (COMPUTE_GENERIC): multi-variant A/B objective evaluation

All contracts validated: zero new test failures vs main (52 pre-existing failures unchanged).

* chore(OMN-12169): Delete high-confidence dead code in omniintelligence (#676)

- Remove 3 orphaned introspection.py files (609 lines): node_pattern_demotion_effect, node_pattern_extraction_compute, node_pattern_storage_effect — not imported anywhere
- Remove 4 unused create_empty_* factory functions (118 lines) from node_pattern_extraction_compute/handlers/protocols.py and scrub them from __all__

Pre-existing RL test failures (test_contracts, test_unified_train_cli) confirmed on main before changes.

* fix(OMN-12174): Eliminate hardcoded paths in omniintelligence (#677)

Replace machine-specific /Volumes/PRO-G40 and /Users/jonah paths in test
fixtures and .pre-commit-config.yaml error message with portable alternatives.

- test_debounce_state.py: _SOURCE → /omninode/code/omniintelligence
- test_handler_crawl_scheduler.py: _SOURCE → /omninode/code/omniintelligence
- node_crawl_scheduler_effect/conftest.py: source_ref fixture → /omninode/code/omniintelligence
- test_handler_context_item_writer.py: /Users/jonah/.claude → /home/user/.claude
- .pre-commit-config.yaml: error message → $OMNI_HOME/docs/plans/

* test(OMN-12179): add unit tests for handler_claude_event payload extractors and DLQ routing (#678)

Covers previously untested helpers in the highest-CCN file (score 1.8, CCN 21):
- _extract_file_path_from_payload: top-level and nested tool_input paths, truncation, non-string guards
- _extract_tool_name_from_payload: key priority, truncation, empty/non-string guards
- _determine_processing_status: all three status branches (SUCCESS emitted, SUCCESS no-config, PARTIAL failed)
- _route_to_dlq: DLQ topic suffix, payload structure, metadata annotation, swallowed failures, envelope sanitization

* refactor(OMN-12185): Convert boundary @DataClass to Pydantic in omniintelligence (#679)

Convert the three mutable accumulator classes in node_intent_graph_reducer to
frozen=False Pydantic BaseModel. Preserves in-place mutation semantics required
by the graph update handlers; uses ConfigDict(arbitrary_types_allowed=True) for
the tuple-keyed edges dict in ModelIntentGraphState. All 49 existing unit tests
pass without modification.

* feat(OMN-11577, OMN-11581): implement CiErrorClassifier + DebugRetrieval compute nodes (#673)

- NodeCiErrorClassifierCompute: add handle_classify_ci_error handler that parses
  raw failure_output (JSON or plain-text), normalizes via _parse_llm_response, and
  delegates from node.py thin shell; add handler_routing to contract.yaml
- NodeDebugRetrievalCompute: replace empty stub with store-injected constructor
  that delegates to query_fix_records_with_decay; node accepts ProtocolDebugStore
  at construction time; add handler_routing to contract.yaml
- Tests: 14 new tests for handler_classifier (JSON input, plain-text fallback,
  confidence clamping, end-to-end), 14 tests for handler_retrieval (time-decay
  math, store delegation, record annotation)
- Both contracts gain handler_routing sections, removing them from the
  test_all_nodes_have_handler_routing_or_exemption failure list (8→6 remaining)

* feat(OMN-12280): wire dispatch_worker-completed bridge handlers in dispatch engine (#684)

* chore: release v0.24.0 — bump all dependency pins

* feat(OMN-12280): wire dispatch_worker-completed bridge handlers in dispatch engine

Add two missing bridge handlers to create_intelligence_dispatch_engine:

1. create_dispatch_outcome_eval_dispatch_handler: routes
   onex.evt.omniclaude.dispatch_worker-completed.v1 → handle_dispatch_outcome()
   and publishes onex.evt.omniintelligence.dispatch-outcome-evaluated.v1

2. create_dispatch_outcome_record_dispatch_handler: routes
   onex.evt.omniintelligence.dispatch-outcome-evaluated.v1 →
   record_dispatch_outcome() → writes dispatch_eval_results rows

Previously PluginIntelligence wired the Kafka consumer (via contract.yaml
subscribe_topics) but MessageDispatchEngine had no handler registered for
these topics, causing "No handler found" nacks on every message.

* fix(OMN-12280): lowercase verdict and fix ModelCostProvenance construction (#685)

- EnumDispatchVerdict values are lowercase (pass/fail/error); the eval
  handler publishes PASS/FAIL/ERROR uppercase from ModelOutput.verdict
- ModelCostProvenance validator forbids source_payload_hash for
  non-measured usage; only pass it when usage_source == "measured"

* fix(OMN-12250): restore RewardSignal contract schema and extend train CLI (#686)

- rl/contracts/rewards.py: replace re-export with proper per-channel
  RewardSignal (latency_reward, success_reward, cost_reward, quality_reward,
  weight fields, to_scalar()) frozen Pydantic model. The shaper-based
  RewardSignal in rl/rewards.py has a different shape; the contract model is
  used by RL training loops and must remain independent.

- rl/train.py: add --all, --min-episodes, --manifest, --schedule flags;
  add pipeline and team surface support; exit code 2 when all skipped;
  print maturity class in output. Fixes 19 unit test failures.

* test(OMN-12250): use EnumUsageSource in GPU event test (#688)

* refactor(OMN-11584): restructure tools/ and clients/ to ONEX taxonomy (#689)

Reclassifies two bare-noun directories into proper ONEX taxonomy names:

- tools/ → validators/ (contract linter, validation models — these are
  validators in ONEX taxonomy; all internal imports updated)
- clients/ → merged into adapters/ (LLM/API clients are adapters per ONEX
  taxonomy; file names preserved, all cross-package imports updated)

Deferred: runtime/ (50+ files, plugin entrypoint — separate PR needed),
audit/ (CLI entrypoint, tightly coupled to test markers), protocols/ (already
valid ONEX taxonomy name for protocol definitions).

407 targeted tests pass; 0 new failures vs pre-existing baseline.

* fix(OMN-11584): align dependency lock after taxonomy merge (#690)

* ci(OMN-11584): align CI with validators taxonomy (#691)

* ci(OMN-7466): rescue omniintelligence main target guard (#693)

* ci(OMN-12243): add main target guard (#683)

* chore: release v0.24.0 (OMN-12245) (#681)

* feat(OMN-11881): normalize version field in all 63 contracts (#672)

Replaces `contract_version: {major: X, minor: Y, patch: Z}` dict format
with top-level `version: "X.Y.Z"` string in all 63 omniintelligence contracts.
Updates test_contract_validation.py to enforce the new string format.

* fix(OMN-12165): Fix datetime.now() in omniintelligence handler (#674)

Replace naive datetime.now() with datetime.now(timezone.utc) for
last_updated and generated_at fields in handler_onextree_generator.py.

* fix(OMN-12167): Add contract.yaml for 4 omniintelligence nodes (#675)

Adds contract.yaml for four nodes missing topology coverage:
- node_tcb_generation_compute (COMPUTE_GENERIC): TCB intent normalization and candidate scoring
- node_intent_graph_reducer (REDUCER_GENERIC): directed intent transition graph accumulator with state_machine
- node_anti_gaming_alerter_effect (EFFECT_GENERIC): Kafka alert publisher, Kafka event bus declared
- node_objective_ab_framework_compute (COMPUTE_GENERIC): multi-variant A/B objective evaluation

All contracts validated: zero new test failures vs main (52 pre-existing failures unchanged).

* chore(OMN-12169): Delete high-confidence dead code in omniintelligence (#676)

- Remove 3 orphaned introspection.py files (609 lines): node_pattern_demotion_effect, node_pattern_extraction_compute, node_pattern_storage_effect — not imported anywhere
- Remove 4 unused create_empty_* factory functions (118 lines) from node_pattern_extraction_compute/handlers/protocols.py and scrub them from __all__

Pre-existing RL test failures (test_contracts, test_unified_train_cli) confirmed on main before changes.

* fix(OMN-12174): Eliminate hardcoded paths in omniintelligence (#677)

Replace machine-specific /Volumes/PRO-G40 and /Users/jonah paths in test
fixtures and .pre-commit-config.yaml error message with portable alternatives.

- test_debounce_state.py: _SOURCE → /omninode/code/omniintelligence
- test_handler_crawl_scheduler.py: _SOURCE → /omninode/code/omniintelligence
- node_crawl_scheduler_effect/conftest.py: source_ref fixture → /omninode/code/omniintelligence
- test_handler_context_item_writer.py: /Users/jonah/.claude → /home/user/.claude
- .pre-commit-config.yaml: error message → $OMNI_HOME/docs/plans/

* test(OMN-12179): add unit tests for handler_claude_event payload extractors and DLQ routing (#678)

Covers previously untested helpers in the highest-CCN file (score 1.8, CCN 21):
- _extract_file_path_from_payload: top-level and nested tool_input paths, truncation, non-string guards
- _extract_tool_name_from_payload: key priority, truncation, empty/non-string guards
- _determine_processing_status: all three status branches (SUCCESS emitted, SUCCESS no-config, PARTIAL failed)
- _route_to_dlq: DLQ topic suffix, payload structure, metadata annotation, swallowed failures, envelope sanitization

* refactor(OMN-12185): Convert boundary @DataClass to Pydantic in omniintelligence (#679)

Convert the three mutable accumulator classes in node_intent_graph_reducer to
frozen=False Pydantic BaseModel. Preserves in-place mutation semantics required
by the graph update handlers; uses ConfigDict(arbitrary_types_allowed=True) for
the tuple-keyed edges dict in ModelIntentGraphState. All 49 existing unit tests
pass without modification.

* feat(OMN-11577, OMN-11581): implement CiErrorClassifier + DebugRetrieval compute nodes (#673)

- NodeCiErrorClassifierCompute: add handle_classify_ci_error handler that parses
  raw failure_output (JSON or plain-text), normalizes via _parse_llm_response, and
  delegates from node.py thin shell; add handler_routing to contract.yaml
- NodeDebugRetrievalCompute: replace empty stub with store-injected constructor
  that delegates to query_fix_records_with_decay; node accepts ProtocolDebugStore
  at construction time; add handler_routing to contract.yaml
- Tests: 14 new tests for handler_classifier (JSON input, plain-text fallback,
  confidence clamping, end-to-end), 14 tests for handler_retrieval (time-decay
  math, store delegation, record annotation)
- Both contracts gain handler_routing sections, removing them from the
  test_all_nodes_have_handler_routing_or_exemption failure list (8→6 remaining)

* chore: release v0.24.0 — bump all dependency pins

* ci: re-trigger CI for release promotion PR

* evidence(OMN-12245): add release promotion receipts

* evidence(OMN-12245): allowlist receipt commit shas

* ci(OMN-12245): rerun after dependency publish

* fix(OMN-12245): remove product-local release receipts

* ci(OMN-12245): rerun after OCC main evidence

* fix(OMN-12245): refresh omniintelligence release locks

* fix(OMN-12245): satisfy omniintelligence release gates

* fix(OMN-12245): allowlist release pin secret scan

* chore(auto-ship): rescue uncommitted work from canonical omniintelligence

Rescue uncommitted canonical work (auto-ship node undeployed).

Rescued files:
- training_manifest.yaml

* ci(OMN-7466): refresh auto-ship rescue gates

* fix(OMN-7466): keep omniintelligence rescue scoped

* docs(OMN-7466): satisfy strict README diff gate

* ci(OMN-12477): remove hotfix/* bypass from main-target-guard (#694)

Main now accepts only dev/promotion PRs (with promotion-receipt: OCC-N).
Deletes the hotfix/* allow-block and updates error messaging to drop
hotfix references.

OMN-12477

* chore(deps): update omnibase-core requirement (#698)

Updates the requirements on [omnibase-core](https://github.com/OmniNode-ai/omnibase_core) to permit the latest version.
- [Release notes](https://github.com/OmniNode-ai/omnibase_core/releases)
- [Changelog](https://github.com/OmniNode-ai/omnibase_core/blob/dev/CHANGELOG.md)
- [Commits](OmniNode-ai/omnibase_core@v0.42.0...v0.43.0)

---
updated-dependencies:
- dependency-name: omnibase-core
  dependency-version: 0.43.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps): refresh aiohttp lock and stabilize baseline tests (#699)

* chore(deps): bump starlette from 0.49.3 to 1.0.1 (#700)

* chore(deps): bump starlette from 0.49.3 to 1.0.1

Bumps [starlette](https://github.com/Kludex/starlette) from 0.49.3 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](Kludex/starlette@0.49.3...1.0.1)

---
updated-dependencies:
- dependency-name: starlette
  dependency-version: 1.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: keep starlette dependency PR green

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jonahgabriel <jonah.gabriel@gmail.com>

* chore(deps): update omnibase-core requirement (#703)

Updates the requirements on [omnibase-core](https://github.com/OmniNode-ai/omnibase_core) to permit the latest version.
- [Release notes](https://github.com/OmniNode-ai/omnibase_core/releases)
- [Changelog](https://github.com/OmniNode-ai/omnibase_core/blob/dev/CHANGELOG.md)
- [Commits](OmniNode-ai/omnibase_core@v0.42.0...v0.44.0)

---
updated-dependencies:
- dependency-name: omnibase-core
  dependency-version: 0.44.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci(OMN-12825): wire receipt-honesty gate (queue-safe ratchet) (#702)

Add `.github/workflows/receipt-honesty.yml` — the OMN-12791 receipt-honesty
validator wired as a CI workflow. Triggers on pull_request + merge_group so
it is queue-safe for a later additive flip to required status check.

The gate is a no-op (PASS) on omniintelligence since the repo carries no committed
drift/dod_receipts/ files; it activates automatically if a PR introduces receipt
YAMLs and will catch gamed probes before merge.

Evidence-Source: b4a423efb853fdfdfb821ae6af5c7a694a585e36
Evidence-Ticket: OMN-12825

* chore(deps): bump the actions group with 2 updates (#706)

Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv).


Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

Updates `astral-sh/setup-uv` from 4 to 7
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@v4...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: astral-sh/setup-uv
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs(OMN-13180): refresh omniintelligence documentation (#711)

- AGENT.md: corrected Qdrant claim — patterns stored in PostgreSQL, not Qdrant
- README.md: corrected node type counts (Compute 35+→24, Effect 14+→30)
- CLAUDE.md: Runtime Module table updated — dispatch_handlers.py now 31 handlers / 40 routes; all 14 dispatch_handler_*.py modules noted
- docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md: updated Four Node Types counts; added validate_handshake as bootstrap step 2.5; corrected dispatch engine route claim; replaced stale inline inventory with pointer to NODE_INVENTORY.md
- docs/reference/NODE_INVENTORY.md: added node_dispatch_outcome_eval_effect (OMN-12280); documented 7 unregistered node directories; updated last-verified date
- docs/reference/EVENT_SURFACE.md: pattern-scored.v1 moved from deprecated to produced (live since OMN-8161); added dispatch_worker-completed.v1 (consumed) and dispatch-outcome-evaluated.v1 (produced) from OMN-12280; updated last-verified date

Parent: OMN-13172

* chore(OMN-13187): refresh omniintelligence dependencies (#712)

* chore(deps): bump cryptography from 46.0.7 to 48.0.1

Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.7 to 48.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@46.0.7...48.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 48.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump python-multipart from 0.0.27 to 0.0.31

Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.27 to 0.0.31.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md)
- [Commits](Kludex/python-multipart@0.0.27...0.0.31)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.31
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump starlette from 1.0.1 to 1.3.1

Bumps [starlette](https://github.com/Kludex/starlette) from 1.0.1 to 1.3.1.
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](Kludex/starlette@1.0.1...1.3.1)

---
updated-dependencies:
- dependency-name: starlette
  dependency-version: 1.3.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump aiohttp from 3.14.0 to 3.14.1

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.14.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(OMN-13187): refresh dependency evidence event

* fix(OMN-13187): route unreachable model fallback to codex

* test(OMN-13187): stabilize default review model test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(OMN-13187): bump pyjwt in omniintelligence (#714)

* docs(OMN-13198): retarget ModelOnexEnvelope docstring ref to ModelEventEnvelope (#715)

ModelEventBusConfig docstring referenced the legacy ModelOnexEnvelope class
(deleted in B4/OMN-13196). The event bus wraps Kafka messages into the
canonical ModelEventEnvelope. Docstring-only edit; no behavior changed.

* fix: split intelligence subscription startup (#716)

* feat(OMN-13298): wire url-authority gate (pre-commit + CI) (#719)

* feat(OMN-13298): wire url-authority gate (pre-commit + CI)

Wires the existing check-url-authority remote hook from omnibase_core
and adds url-authority-gate.yml CI workflow. Existing violations are
grandfathered in the shared baseline (seeded via omnibase_core PR #1264).
Only NEW hardcoded URL fingerprints will fail the gate going forward.

- pre-commit hook: check-url-authority (ratchet, burn-down baseline)
- CI workflow: url-authority-gate.yml (REQUIRED STATUS CHECK)
- Baseline: seeded in omnibase_core#1264 (OMN-13298)

Child of OMN-12803.

* fix(OMN-13298): pin url authority validator source

* fix(OMN-13298): run pinned url authority validator in CI

* feat(OMN-13296): add reject-deploy-gate-skip-token pre-commit hook (#717)

* feat(OMN-13296): add reject-deploy-gate-skip-token pre-commit hook

Adds skip-token rejection gate (OMN-10414 parity) to local pre-commit:
- .pre-commit-hooks/reject-deploy-gate-skip-token.sh (hook script)
- reject-deploy-gate-skip-token (pre-commit stage)
- reject-deploy-gate-skip-token-commit-msg (commit-msg stage)

CI mirror call-reject-skip.yml was already present; this adds the
local enforcement layer so bypass tokens are caught at commit time,
not only in CI. CLAUDE.md Rule #10.

Fail-closed proof: stage a file with [skip-deploy-gate: x] → hook
exits 1 naming OMN-10414; remove token → hook exits 0.

* chore(OMN-13296): refresh skip-token checks

* fix(OMN-13296): place skip-token hooks in pre-commit repos

* fix(OMN-13296): move skip-token hook under validation scripts

* feat(OMN-13297): wire runtime-profiles gate into omniintelligence (#718)

* feat(OMN-13297): wire runtime-profiles gate into omniintelligence

W3 from the validator standardization remediation plan (GAP-7).

Verification (F1 pre-file grep confirmed absent before this change):
- `rg "runtime_profile" .pre-commit-config.yaml` → ABSENT (before)
- 67 node contracts, 0 with runtime_profiles

Changes:
- Add validation/runtime_profiles_allowlist.yaml (baseline-freezing 15
  pre-existing command-consuming nodes without runtime_profiles)
- Add scripts/ci/run_runtime_profiles_validator.py (wrapper script that
  loads the repo-local allowlist — mirrors OMN-12955 pattern from omnimarket)
- Add onex-validate-runtime-profiles pre-commit hook to .pre-commit-config.yaml
- Add .github/workflows/validator-runtime-profiles.yml CI gate

Fail-closed proof: planting a cmd-consuming contract without runtime_profiles
not in the allowlist exits non-zero with the specific error message.
Gate blocks NEW orphans; pre-existing ones are allowlisted for drain via OMN-12982.

Evidence-Source: OCC#TBD
Evidence-Ticket: OMN-13297

* fix(OMN-13297): keep runtime profiles allowlist under scripts validation

* fix(OMN-13297): raise runtime profiles uv timeout

* feat(OMN-13249): wire canonical-inference gate (pre-commit + CI) (#720)

Fleet rollout of OMN-13219 to omniintelligence: consume the remotely-exposed
check-canonical-inference hook from omnibase_core (pinned to export commit
940d2f2a) as a pre-commit hook + add the Canonical Inference Gate required
CI workflow.

The gate rejects NEW non-canonical model-inference surfaces (shelled
codex/claude/gemini/opencode CLIs, *_MODEL/*_PROVIDER env reads). The 1
existing omniintelligence violation is grandfathered in the shared baseline
(canonical_inference_baseline.json, seeded by core#1265); burn-down only.

Fail-closed proof (verifier = core@940d2f2a validator):
  clean full-repo scan -> exit 0 (0 new, 1 grandfathered).
  (cross-repo plant proof captured on omnimarket; same validator + baseline.)

Evidence-Source: OCC#2757
Evidence-Ticket: OMN-13249

* feat(OMN-13291): wire validate-validator-requirements fleet gate (omniintelligence) (W0) (#721)

* feat(OMN-13291): wire validate-validator-requirements fleet gate (omniintelligence)

W0 of the validator-standardization remediation plan (§3 W0). Wires the
validate-validator-requirements meta-gate into omniintelligence as a remote pre-commit hook +
CI workflow, so omniintelligence proves it carries its required validator gate-set declared in
omnibase_core's architecture-handshakes/validator-requirements.yaml.

- Add the omnibase_core remote pre-commit hook (validate-validator-requirements),
  pinned to the core export commit; re-pin to merged-dev once core lands.
- Add .github/workflows/validate-validator-requirements.yml (checks out core,
  runs the consumer against omniintelligence's spec copy + baseline). Reports ALL missing
  gates per run (never fail-on-first).
- Add architecture-handshakes/validator-requirements-baseline.yaml: structured
  schema recording the current accepted gaps (19); shrinks as W1-W10 land.
- Vendor architecture-handshakes/validator-requirements.yaml (spec copy) so the
  pre-commit hook resolves the spec from this repo root (mirrors onex_change_control).

Fail-closed proof captured in the omnibase_core export PR body (verifier != runner).

Parent epic: OMN-9048.

* ci(OMN-13291): satisfy validator requirements hook formatting

* feat(OMN-13283): consume core transport-import + node-purity hooks, delete local io-audit scanner (#722)

* feat(OMN-13283): consume core transport-import + node-purity hooks, delete local io-audit scanner

Consolidates omniintelligence's transport/purity gates into the canonical
omnibase_core remote hooks (OMN-13283 / GAP-8a, under OMN-9048):

- Delete the scanner: src/omniintelligence/audit/io_audit.py + __main__.py and
  scripts/validate_no_transport_imports.py, plus tests/audit/test_io_violations.py,
  its io fixtures, tests/audit/io_audit_whitelist.yaml, and the transport-import test.
- KEEP the shared audit data models (enum_io_audit_rule, model_audit_result/metrics/
  violation, model_inline_pragma, model_whitelist_*) — they are consumed by the
  runtime node node_context_audit_aggregator_compute, not the scanner. __init__ trims
  the scanner exports.
- Wire core remote hooks 'validate-no-transport-imports' + 'node-purity' (scoped to
  src/omniintelligence/nodes) in .pre-commit-config.yaml; node-purity excludes mirror
  the former io_audit_whitelist file-scoped exemptions (effect-node handlers, __main__
  entry points, documented compute exemption).
- Repoint the io-audit CI job to run the core node-purity validator with matching
  excludes.

No behavioral regression: both hooks pass clean; audit models still import; fail-closed
proof captured. Pin advances to the core merge SHA once omnibase_core#1272 lands.

Part of OMN-9048 validator-standardization.

* docs(OMN-13283): retarget stale audit links

* ci(OMN-13283): align audit selector with core purity hook

* fix(OMN-9536): drop legacy routing.feedback bare-topic drain in node_routing_feedback_effect (#724)

* fix(OMN-9536): drop legacy routing.feedback bare-topic drain

The bare topic "routing.feedback" was re-added by OMN-8157 (PR #610) as a
no-op drain subscription, explicitly gated: "Remove after topic is confirmed
empty and purged from Redpanda." Both gating conditions are now met:

- No producer emits to the bare topic anywhere across all repos. The omniclaude
  registration (event_registry.py routing.feedback EventRegistration) fans out
  to TopicBase.ROUTING_FEEDBACK = onex.evt.omniclaude.routing-feedback.v1 (the
  canonical topic), not the bare topic.
- Live Redpanda probe on 192.168.86.201 across all four lanes (dev,
  stability-test, prod, judge): bare routing.feedback topic is ABSENT in every
  lane; canonical onex.evt.omniclaude.routing-feedback.v1 is present.

Removes the bare topic from subscribe_topics, the legacy drain dispatch handler
+ route, handle_legacy_routing_feedback_drain(), the
TOPIC_LEGACY_ROUTING_FEEDBACK_BARE constant, and the drain-only test. Updates
dispatch-engine handler/route count assertions (baseline 30->29 handlers,
37->36 routes) and removes the legacy topic from the contract-topics expected
set. Bumps node_routing_feedback_effect contract 1.2.0 -> 1.2.1.

* ci(OMN-9536): use reachable url authority core pin

* refactor(OMN-13349): decompose claude hook check extraction (#723)

* docs(OMN-13455): refresh architecture docs verified against code (#725)

* chore(deps): update omnibase-core requirement (#729)

Updates the requirements on [omnibase-core](https://github.com/OmniNode-ai/omnibase_core) to permit the latest version.
- [Release notes](https://github.com/OmniNode-ai/omnibase_core/releases)
- [Changelog](https://github.com/OmniNode-ai/omnibase_core/blob/dev/CHANGELOG.md)
- [Commits](OmniNode-ai/omnibase_core@v0.42.0...v0.45.0)

---
updated-dependencies:
- dependency-name: omnibase-core
  dependency-version: 0.45.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(OMN-13495): bump actions/checkout from 6 to 7 (#728)

* chore(deps): bump actions/checkout from 6 to 7 in the actions group

Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>

* test(OMN-13495): align dispatch counts for no-LLM env

* fix(OMN-13495): address checkout v7 review hardening

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump pydantic-settings from 2.14.0 to 2.14.2 (#731)

Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.14.0 to 2.14.2.
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](pydantic/pydantic-settings@v2.14.0...v2.14.2)

---
updated-dependencies:
- dependency-name: pydantic-settings
  dependency-version: 2.14.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor(OMN-13561): remove scattered os.environ endpoint reads from navigation-retriever docs (Wave 1) (#734)

Epic OMN-13556 Wave 1 (endpoints, OVERLAY seam) for omniintelligence.

The url-authority gate flagged three `os.environ["LLM_EMBEDDING_URL"]` /
`os.environ["QDRANT_URL"]` reads inside docstring/Field-description text of
node_navigation_retriever_effect. These are NOT live env reads — the node is a
pure declarative shell and the endpoints are caller-injected via the input
model (already the correct DI pattern). The docstring literals were the only
thing tripping the env-url-read rule. Reworded to describe overlay/routing-
authority resolution without showing a raw env read.

This burns down 3 grandfathered url-authority findings (baseline shrink in the
paired omnibase_core PR). Gate stays green: 0 new violations.

Live integration-endpoint migrations in this repo (QDRANT_URL in the gmail
evaluator handler; MEMGRAPH_URI in dispatch_handler_graph_storage) require the
sanctioned overlay boundary `omnibase_infra.runtime.overlay.contract_env_ref.
expand_contract_env_refs` (OMN-13247). That module is on omnibase_infra dev only
— it is NOT in any released tag (latest v0.38.3 lacks it) and omniintelligence
pins omnibase-infra <0.38.0. Those migrations are deferred until the resolver
ships in a release this repo can pin; vendoring/shimming the resolver is
prohibited (duplication of the sanctioned boundary). LLM_*_URL reads are
Bifrost-owned (OMN-12803/12815) and out of scope.

Wave-1 ticket: OMN-13561. Epic: OMN-13556.

* docs(OMN-13570): sanitize omniintelligence documentation (local-env + OMN-XXXX + renames) (#735)

Removes all local-environment traces and Linear ticket references from
the public documentation surface of omniintelligence.

Task 1 — local-env sanitization:
- deployment/docker/README.md: replace 192.168.86.200 with <onex-host>/
  ${ONEX_HOST}, replace ".201" host shorthand with "the runtime host"
- README.md: replace "on .201" with "on the runtime host"
- CLAUDE.md: replace "on .201" with "on the runtime host"

Task 2 — OMN-XXXX ticket ref removal (15 files):
- CHANGELOG.md: strip OMN-XXXX from all feat/fix/test/ci prefixes,
  inline tags, and parenthetical refs across full version history
- CLAUDE.md: remove (OMN-12280) dispatch count annotation; rewrite
  (OMN-2253)/(OMN-2058) API purpose prose; replace TODO(OMN-1234)
  illustrative code with generic TICKET-123 placeholder
- docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md: remove (OMN-13455)
  from last-updated footer
- docs/architecture/contract-package-spec.md: remove **Ticket**: OMN-7142 header
- docs/INDEX.md: remove (OMN-13455) from status table
- docs/reference/NODE_INVENTORY.md: remove (OMN-13455) + (OMN-12280) annotations
- docs/reference/EVENT_SURFACE.md: rewrite four OMN-tagged descriptions
- docs/reference/DASH_INTEGRATION_TRUTH_BOUNDARY.md: remove (OMN-2366) drain tag
- docs/standards/STANDARD_DOC_LAYOUT.md: rename plans/OMN-1757-* example path
- deployment/database/FK_SCAN_REPORT.md: remove **Ticket**/**Parent** header fields
- scripts/validation/topic_naming_baseline.txt: remove (OMN-3259) from comment
- src/omniintelligence/audit/README.md: replace OMN-123/456 in YAML examples
- src/omniintelligence/review_pairing/TOPICS.md: remove (OMN-2353) subsystem ref +
  OMN-2535 reference footer

No source code, contracts, or CI yaml touched.

Evidence-Ticket: OMN-13570
Evidence-Source: 87fb618f0273a5694123aed70aa25e4f8a3d1953

* chore(ci): propagate normalization-symmetry-hook [bot] (#738)

Co-authored-by: onex-propagate-bot <bot@omninode.ai>

* chore(OMN-13162): bump actions/cache to v6 (#740)

* chore(deps): bump tuf from 6.0.0 to 7.0.0 (#741)

Bumps [tuf](https://github.com/theupdateframework/python-tuf) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/theupdateframework/python-tuf/releases)
- [Changelog](https://github.com/theupdateframework/python-tuf/blob/develop/docs/CHANGELOG.md)
- [Commits](theupdateframework/python-tuf@v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: tuf
  dependency-version: 7.0.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump omnibase_core to 0.46.1 (#743)

* feat(OMN-13802): add Cursor hook event effect (#744)

* Add Cursor hook-event consumer + agent_source seam

Surface the OmniCursor dispatcher backend draft for OmniNode review
(ask H.1 of the 2026-06-23 response to OMNICURSOR_DISPATCHER_PLAN),
rebased onto current dev (ask H.2).

- node_cursor_hook_event_effect: peer of node_claude_hook_event_effect
  (route_cursor_hook_event), with handler, models, registry and tests
- agent_source seam on route_hook_event (defaults to "claude"; additive,
  Claude path unchanged) threaded onto emitted events
- CURSOR_HOOK_EVENT topic + dispatch/wiring/message-type registration

Rebase reconciliation against live dev (H.2):
- merged DISPATCH_ALIAS_CURSOR_HOOK into __all__ alongside dev's new
  DISPATCH_OUTCOME_EVALUATED / DISPATCH_WORKER_COMPLETED aliases
- corrected the dispatch-engine assertions: with the cursor node wired
  onto dev's baseline the true counts are 30 handlers / 37 routes
  (dev's 29/36 + 1 cursor each). The pre-rebase draft asserted 29/36,
  which only passed by number-collision with dev's cursor-less totals.

Verified: full node_claude_hook_event_effect suite + dispatch + cursor +
topic/registration tests all green (317 passed) with the W1 omnibase_core
cursor models present.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(OMN-13802): add cursor hook event effect

* chore(OMN-13802): format cursor hook contract

---------

Co-authored-by: andywu42 <awu42@dons.usfca.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* feat(OMN-13877): dep-provenance gate — omniintelligence (+OMN-13878 escape tokens) (#745)

* feat(OMN-13877): dep-provenance gate — omniintelligence (+OMN-13878 escape tokens)

Add the dep-provenance gate (OMN-13873) to omniintelligence: forbid
first-party git-source overrides of omnibase-core / omnibase-spi /
omnibase-compat in [tool.uv.sources]. Copied verbatim from omnibase_infra:

  - scripts/check_dep_provenance.py
  - .github/workflows/dep-provenance-gate.yml
  - tests/scripts/test_check_dep_provenance.py

Wire the check-dep-provenance local hook into .pre-commit-config.yaml.

This repo currently violates the gate (omnibase-core rev=, omnibase-spi
tag=). Escape-token both existing lines to OMN-13878 so the gate lands
green without changing any pin value; the drain of those overrides is
tracked by OMN-13878.

* test(OMN-13877): allowlist fixture git-rev hashes for detect-secrets

The verbatim-copied dep-provenance test fixtures embed example git rev
SHAs (omnibase_infra #2184 reproduction + occ-only allow case). This
repo's Detect Secrets CI gate flags them as Hex High Entropy Strings.
Annotate the three fixture lines with '# pragma: allowlist secret'
(comment on an implicitly-concatenated string piece — no behavior change;
all 11 tests still pass). omnibase_infra's own secrets baseline already
allowlisted these; this repo scans tests/scripts/ so needs the inline mark.

* ci(OMN-13875): Quality Gate actually evaluates contract-compliance (#746)

* ci(OMN-13875): Quality Gate actually evaluates contract-compliance

contract-compliance was in quality-gate's needs: but its .result was
never read — a decorative dependency, so a Contract Compliance Check
failure did not block merge. Read it and fail the gate on failure.
Success-or-skipped tolerance only applies to non-gating events; on
pull_request/merge_group it always runs, so nothing slips via skipped.
quality-gate feeds the required CI Summary (requires quality==success),
so the fix propagates.

Evidence-Source: workflow-logic fix, no Python touched.

* test(OMN-13885): bump handler/route baselines +1 for OMN-13802 cursor-hook

OMN-13802 (#744) added the cursor-hook event effect: +1 baseline handler
(intelligence-cursor-hook-handler) and +1 baseline route
(intelligence-cursor-hook-route), plus a new node dir
node_cursor_hook_event_effect. The drift-detector baselines were not bumped,
turning omniintelligence dev red on Unit Tests -> CI Summary (blocks all dev PRs).

Confirmed live counts locally (env -u PYTHONPATH, pinned core rev 5698f6f):
- with projection:    handler_count=31, route_count=40
- without projection: handler_count=30, route_count=37

Updated:
- test_pattern_stored_triggers_projection.py: 30->31 / 39->40 (proj), 29->30 (base)
- test_projection_handler_registration.py: 29->30, 36->37
- test_plugin_dispatch.py: 39->40, 30->31
- test_package_installability.py: EXPECTED_NODE_DIRS += node_cursor_hook_event_effect

Full tests/unit green (5562+ passed). Unblocks OMN-13875 PR #746.

* fix(OMN-13887): migrate omniintelligence dispatch off removed core MessageDispatchEngine + repin to PyPI (OMN-13878) (#748)

omnibase_core removed runtime.runtime_message_dispatch.MessageDispatchEngine
in 0.46.x. Migrate the Intelligence runtime onto the canonical successor
(omnibase_infra.runtime.message_dispatch_engine.MessageDispatchEngine, the
same engine omnimarket uses) via a single envelope-rehydration adapter seam
so all ~30 domain handlers stay behavior-preserving and untouched.

- dispatch_handlers.py: add _rehydrate_dispatch_envelope + _adapt_context_dispatcher
  + _register_dispatcher_adapted. The infra engine materializes every envelope
  to a JSON-safe dict at the dispatch boundary (OMN-1518) and treats a non-None
  str return as an output topic; the adapter restores a ModelEventEnvelope view
  (payload/correlation_id/event_type/timestamp from __debug_trace) and normalizes
  status-sentinel returns ("ok"/"skip"/...) to None.
- plugin.py + dispatch_handlers.py: register_handler->register_dispatcher,
  handler_count->dispatcher_count, result.handler_id->result.dispatcher_id.
- add tests/unit/runtime/test_dispatch_envelope_adapter.py (12 cases) covering
  the new boundary seam.
- pyproject/uv.lock: repin omnibase-core 0.46.3 + omnibase-spi 0.23.1 from PyPI,
  bump infra to the core-0.46 dev rev, delete both raw-override-ok:OMN-13878
  tokens and the core/spi git sources; ceilings <0.47.0 / <0.24.0.

Closes the omniintelligence lane of OMN-13878 (4/4 token-free).

Full CI-scoped suite (tests/ --ignore=tests/integration, matching ci.yml): 5675
passed, 0 failed. The 12 integration failures + e2e errors reproduce identically
on clean origin/dev (service/pytest-asyncio, excluded from CI) — no regression.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: onex-propagate-bot <bot@omninode.ai>
Co-authored-by: andywu42 <awu42@dons.usfca.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
andywu42 added a commit to andywu42/omniintelligence that referenced this pull request Jul 6, 2026
* ci(OMN-12243): add main target guard (OmniNode-ai#683)

* chore: release v0.24.0 (OMN-12245) (OmniNode-ai#681)

* feat(OMN-11881): normalize version field in all 63 contracts (OmniNode-ai#672)

Replaces `contract_version: {major: X, minor: Y, patch: Z}` dict format
with top-level `version: "X.Y.Z"` string in all 63 omniintelligence contracts.
Updates test_contract_validation.py to enforce the new string format.

* fix(OMN-12165): Fix datetime.now() in omniintelligence handler (OmniNode-ai#674)

Replace naive datetime.now() with datetime.now(timezone.utc) for
last_updated and generated_at fields in handler_onextree_generator.py.

* fix(OMN-12167): Add contract.yaml for 4 omniintelligence nodes (OmniNode-ai#675)

Adds contract.yaml for four nodes missing topology coverage:
- node_tcb_generation_compute (COMPUTE_GENERIC): TCB intent normalization and candidate scoring
- node_intent_graph_reducer (REDUCER_GENERIC): directed intent transition graph accumulator with state_machine
- node_anti_gaming_alerter_effect (EFFECT_GENERIC): Kafka alert publisher, Kafka event bus declared
- node_objective_ab_framework_compute (COMPUTE_GENERIC): multi-variant A/B objective evaluation

All contracts validated: zero new test failures vs main (52 pre-existing failures unchanged).

* chore(OMN-12169): Delete high-confidence dead code in omniintelligence (OmniNode-ai#676)

- Remove 3 orphaned introspection.py files (609 lines): node_pattern_demotion_effect, node_pattern_extraction_compute, node_pattern_storage_effect — not imported anywhere
- Remove 4 unused create_empty_* factory functions (118 lines) from node_pattern_extraction_compute/handlers/protocols.py and scrub them from __all__

Pre-existing RL test failures (test_contracts, test_unified_train_cli) confirmed on main before changes.

* fix(OMN-12174): Eliminate hardcoded paths in omniintelligence (OmniNode-ai#677)

Replace machine-specific /Volumes/PRO-G40 and /Users/jonah paths in test
fixtures and .pre-commit-config.yaml error message with portable alternatives.

- test_debounce_state.py: _SOURCE → /omninode/code/omniintelligence
- test_handler_crawl_scheduler.py: _SOURCE → /omninode/code/omniintelligence
- node_crawl_scheduler_effect/conftest.py: source_ref fixture → /omninode/code/omniintelligence
- test_handler_context_item_writer.py: /Users/jonah/.claude → /home/user/.claude
- .pre-commit-config.yaml: error message → $OMNI_HOME/docs/plans/

* test(OMN-12179): add unit tests for handler_claude_event payload extractors and DLQ routing (OmniNode-ai#678)

Covers previously untested helpers in the highest-CCN file (score 1.8, CCN 21):
- _extract_file_path_from_payload: top-level and nested tool_input paths, truncation, non-string guards
- _extract_tool_name_from_payload: key priority, truncation, empty/non-string guards
- _determine_processing_status: all three status branches (SUCCESS emitted, SUCCESS no-config, PARTIAL failed)
- _route_to_dlq: DLQ topic suffix, payload structure, metadata annotation, swallowed failures, envelope sanitization

* refactor(OMN-12185): Convert boundary @DataClass to Pydantic in omniintelligence (OmniNode-ai#679)

Convert the three mutable accumulator classes in node_intent_graph_reducer to
frozen=False Pydantic BaseModel. Preserves in-place mutation semantics required
by the graph update handlers; uses ConfigDict(arbitrary_types_allowed=True) for
the tuple-keyed edges dict in ModelIntentGraphState. All 49 existing unit tests
pass without modification.

* feat(OMN-11577, OMN-11581): implement CiErrorClassifier + DebugRetrieval compute nodes (OmniNode-ai#673)

- NodeCiErrorClassifierCompute: add handle_classify_ci_error handler that parses
  raw failure_output (JSON or plain-text), normalizes via _parse_llm_response, and
  delegates from node.py thin shell; add handler_routing to contract.yaml
- NodeDebugRetrievalCompute: replace empty stub with store-injected constructor
  that delegates to query_fix_records_with_decay; node accepts ProtocolDebugStore
  at construction time; add handler_routing to contract.yaml
- Tests: 14 new tests for handler_classifier (JSON input, plain-text fallback,
  confidence clamping, end-to-end), 14 tests for handler_retrieval (time-decay
  math, store delegation, record annotation)
- Both contracts gain handler_routing sections, removing them from the
  test_all_nodes_have_handler_routing_or_exemption failure list (8→6 remaining)

* chore: release v0.24.0 — bump all dependency pins

* ci: re-trigger CI for release promotion PR

* evidence(OMN-12245): add release promotion receipts

* evidence(OMN-12245): allowlist receipt commit shas

* ci(OMN-12245): rerun after dependency publish

* fix(OMN-12245): remove product-local release receipts

* ci(OMN-12245): rerun after OCC main evidence

* fix(OMN-12245): refresh omniintelligence release locks

* fix(OMN-12245): satisfy omniintelligence release gates

* fix(OMN-12245): allowlist release pin secret scan

* release(OMN-13828): promote omniintelligence dev→main (adoption + 0.24.0) (OmniNode-ai#749)

* feat(OMN-11881): normalize version field in all 63 contracts (OmniNode-ai#672)

Replaces `contract_version: {major: X, minor: Y, patch: Z}` dict format
with top-level `version: "X.Y.Z"` string in all 63 omniintelligence contracts.
Updates test_contract_validation.py to enforce the new string format.

* fix(OMN-12165): Fix datetime.now() in omniintelligence handler (OmniNode-ai#674)

Replace naive datetime.now() with datetime.now(timezone.utc) for
last_updated and generated_at fields in handler_onextree_generator.py.

* fix(OMN-12167): Add contract.yaml for 4 omniintelligence nodes (OmniNode-ai#675)

Adds contract.yaml for four nodes missing topology coverage:
- node_tcb_generation_compute (COMPUTE_GENERIC): TCB intent normalization and candidate scoring
- node_intent_graph_reducer (REDUCER_GENERIC): directed intent transition graph accumulator with state_machine
- node_anti_gaming_alerter_effect (EFFECT_GENERIC): Kafka alert publisher, Kafka event bus declared
- node_objective_ab_framework_compute (COMPUTE_GENERIC): multi-variant A/B objective evaluation

All contracts validated: zero new test failures vs main (52 pre-existing failures unchanged).

* chore(OMN-12169): Delete high-confidence dead code in omniintelligence (OmniNode-ai#676)

- Remove 3 orphaned introspection.py files (609 lines): node_pattern_demotion_effect, node_pattern_extraction_compute, node_pattern_storage_effect — not imported anywhere
- Remove 4 unused create_empty_* factory functions (118 lines) from node_pattern_extraction_compute/handlers/protocols.py and scrub them from __all__

Pre-existing RL test failures (test_contracts, test_unified_train_cli) confirmed on main before changes.

* fix(OMN-12174): Eliminate hardcoded paths in omniintelligence (OmniNode-ai#677)

Replace machine-specific /Volumes/PRO-G40 and /Users/jonah paths in test
fixtures and .pre-commit-config.yaml error message with portable alternatives.

- test_debounce_state.py: _SOURCE → /omninode/code/omniintelligence
- test_handler_crawl_scheduler.py: _SOURCE → /omninode/code/omniintelligence
- node_crawl_scheduler_effect/conftest.py: source_ref fixture → /omninode/code/omniintelligence
- test_handler_context_item_writer.py: /Users/jonah/.claude → /home/user/.claude
- .pre-commit-config.yaml: error message → $OMNI_HOME/docs/plans/

* test(OMN-12179): add unit tests for handler_claude_event payload extractors and DLQ routing (OmniNode-ai#678)

Covers previously untested helpers in the highest-CCN file (score 1.8, CCN 21):
- _extract_file_path_from_payload: top-level and nested tool_input paths, truncation, non-string guards
- _extract_tool_name_from_payload: key priority, truncation, empty/non-string guards
- _determine_processing_status: all three status branches (SUCCESS emitted, SUCCESS no-config, PARTIAL failed)
- _route_to_dlq: DLQ topic suffix, payload structure, metadata annotation, swallowed failures, envelope sanitization

* refactor(OMN-12185): Convert boundary @DataClass to Pydantic in omniintelligence (OmniNode-ai#679)

Convert the three mutable accumulator classes in node_intent_graph_reducer to
frozen=False Pydantic BaseModel. Preserves in-place mutation semantics required
by the graph update handlers; uses ConfigDict(arbitrary_types_allowed=True) for
the tuple-keyed edges dict in ModelIntentGraphState. All 49 existing unit tests
pass without modification.

* feat(OMN-11577, OMN-11581): implement CiErrorClassifier + DebugRetrieval compute nodes (OmniNode-ai#673)

- NodeCiErrorClassifierCompute: add handle_classify_ci_error handler that parses
  raw failure_output (JSON or plain-text), normalizes via _parse_llm_response, and
  delegates from node.py thin shell; add handler_routing to contract.yaml
- NodeDebugRetrievalCompute: replace empty stub with store-injected constructor
  that delegates to query_fix_records_with_decay; node accepts ProtocolDebugStore
  at construction time; add handler_routing to contract.yaml
- Tests: 14 new tests for handler_classifier (JSON input, plain-text fallback,
  confidence clamping, end-to-end), 14 tests for handler_retrieval (time-decay
  math, store delegation, record annotation)
- Both contracts gain handler_routing sections, removing them from the
  test_all_nodes_have_handler_routing_or_exemption failure list (8→6 remaining)

* feat(OMN-12280): wire dispatch_worker-completed bridge handlers in dispatch engine (OmniNode-ai#684)

* chore: release v0.24.0 — bump all dependency pins

* feat(OMN-12280): wire dispatch_worker-completed bridge handlers in dispatch engine

Add two missing bridge handlers to create_intelligence_dispatch_engine:

1. create_dispatch_outcome_eval_dispatch_handler: routes
   onex.evt.omniclaude.dispatch_worker-completed.v1 → handle_dispatch_outcome()
   and publishes onex.evt.omniintelligence.dispatch-outcome-evaluated.v1

2. create_dispatch_outcome_record_dispatch_handler: routes
   onex.evt.omniintelligence.dispatch-outcome-evaluated.v1 →
   record_dispatch_outcome() → writes dispatch_eval_results rows

Previously PluginIntelligence wired the Kafka consumer (via contract.yaml
subscribe_topics) but MessageDispatchEngine had no handler registered for
these topics, causing "No handler found" nacks on every message.

* fix(OMN-12280): lowercase verdict and fix ModelCostProvenance construction (OmniNode-ai#685)

- EnumDispatchVerdict values are lowercase (pass/fail/error); the eval
  handler publishes PASS/FAIL/ERROR uppercase from ModelOutput.verdict
- ModelCostProvenance validator forbids source_payload_hash for
  non-measured usage; only pass it when usage_source == "measured"

* fix(OMN-12250): restore RewardSignal contract schema and extend train CLI (OmniNode-ai#686)

- rl/contracts/rewards.py: replace re-export with proper per-channel
  RewardSignal (latency_reward, success_reward, cost_reward, quality_reward,
  weight fields, to_scalar()) frozen Pydantic model. The shaper-based
  RewardSignal in rl/rewards.py has a different shape; the contract model is
  used by RL training loops and must remain independent.

- rl/train.py: add --all, --min-episodes, --manifest, --schedule flags;
  add pipeline and team surface support; exit code 2 when all skipped;
  print maturity class in output. Fixes 19 unit test failures.

* test(OMN-12250): use EnumUsageSource in GPU event test (OmniNode-ai#688)

* refactor(OMN-11584): restructure tools/ and clients/ to ONEX taxonomy (OmniNode-ai#689)

Reclassifies two bare-noun directories into proper ONEX taxonomy names:

- tools/ → validators/ (contract linter, validation models — these are
  validators in ONEX taxonomy; all internal imports updated)
- clients/ → merged into adapters/ (LLM/API clients are adapters per ONEX
  taxonomy; file names preserved, all cross-package imports updated)

Deferred: runtime/ (50+ files, plugin entrypoint — separate PR needed),
audit/ (CLI entrypoint, tightly coupled to test markers), protocols/ (already
valid ONEX taxonomy name for protocol definitions).

407 targeted tests pass; 0 new failures vs pre-existing baseline.

* fix(OMN-11584): align dependency lock after taxonomy merge (OmniNode-ai#690)

* ci(OMN-11584): align CI with validators taxonomy (OmniNode-ai#691)

* ci(OMN-7466): rescue omniintelligence main target guard (OmniNode-ai#693)

* ci(OMN-12243): add main target guard (OmniNode-ai#683)

* chore: release v0.24.0 (OMN-12245) (OmniNode-ai#681)

* feat(OMN-11881): normalize version field in all 63 contracts (OmniNode-ai#672)

Replaces `contract_version: {major: X, minor: Y, patch: Z}` dict format
with top-level `version: "X.Y.Z"` string in all 63 omniintelligence contracts.
Updates test_contract_validation.py to enforce the new string format.

* fix(OMN-12165): Fix datetime.now() in omniintelligence handler (OmniNode-ai#674)

Replace naive datetime.now() with datetime.now(timezone.utc) for
last_updated and generated_at fields in handler_onextree_generator.py.

* fix(OMN-12167): Add contract.yaml for 4 omniintelligence nodes (OmniNode-ai#675)

Adds contract.yaml for four nodes missing topology coverage:
- node_tcb_generation_compute (COMPUTE_GENERIC): TCB intent normalization and candidate scoring
- node_intent_graph_reducer (REDUCER_GENERIC): directed intent transition graph accumulator with state_machine
- node_anti_gaming_alerter_effect (EFFECT_GENERIC): Kafka alert publisher, Kafka event bus declared
- node_objective_ab_framework_compute (COMPUTE_GENERIC): multi-variant A/B objective evaluation

All contracts validated: zero new test failures vs main (52 pre-existing failures unchanged).

* chore(OMN-12169): Delete high-confidence dead code in omniintelligence (OmniNode-ai#676)

- Remove 3 orphaned introspection.py files (609 lines): node_pattern_demotion_effect, node_pattern_extraction_compute, node_pattern_storage_effect — not imported anywhere
- Remove 4 unused create_empty_* factory functions (118 lines) from node_pattern_extraction_compute/handlers/protocols.py and scrub them from __all__

Pre-existing RL test failures (test_contracts, test_unified_train_cli) confirmed on main before changes.

* fix(OMN-12174): Eliminate hardcoded paths in omniintelligence (OmniNode-ai#677)

Replace machine-specific /Volumes/PRO-G40 and /Users/jonah paths in test
fixtures and .pre-commit-config.yaml error message with portable alternatives.

- test_debounce_state.py: _SOURCE → /omninode/code/omniintelligence
- test_handler_crawl_scheduler.py: _SOURCE → /omninode/code/omniintelligence
- node_crawl_scheduler_effect/conftest.py: source_ref fixture → /omninode/code/omniintelligence
- test_handler_context_item_writer.py: /Users/jonah/.claude → /home/user/.claude
- .pre-commit-config.yaml: error message → $OMNI_HOME/docs/plans/

* test(OMN-12179): add unit tests for handler_claude_event payload extractors and DLQ routing (OmniNode-ai#678)

Covers previously untested helpers in the highest-CCN file (score 1.8, CCN 21):
- _extract_file_path_from_payload: top-level and nested tool_input paths, truncation, non-string guards
- _extract_tool_name_from_payload: key priority, truncation, empty/non-string guards
- _determine_processing_status: all three status branches (SUCCESS emitted, SUCCESS no-config, PARTIAL failed)
- _route_to_dlq: DLQ topic suffix, payload structure, metadata annotation, swallowed failures, envelope sanitization

* refactor(OMN-12185): Convert boundary @DataClass to Pydantic in omniintelligence (OmniNode-ai#679)

Convert the three mutable accumulator classes in node_intent_graph_reducer to
frozen=False Pydantic BaseModel. Preserves in-place mutation semantics required
by the graph update handlers; uses ConfigDict(arbitrary_types_allowed=True) for
the tuple-keyed edges dict in ModelIntentGraphState. All 49 existing unit tests
pass without modification.

* feat(OMN-11577, OMN-11581): implement CiErrorClassifier + DebugRetrieval compute nodes (OmniNode-ai#673)

- NodeCiErrorClassifierCompute: add handle_classify_ci_error handler that parses
  raw failure_output (JSON or plain-text), normalizes via _parse_llm_response, and
  delegates from node.py thin shell; add handler_routing to contract.yaml
- NodeDebugRetrievalCompute: replace empty stub with store-injected constructor
  that delegates to query_fix_records_with_decay; node accepts ProtocolDebugStore
  at construction time; add handler_routing to contract.yaml
- Tests: 14 new tests for handler_classifier (JSON input, plain-text fallback,
  confidence clamping, end-to-end), 14 tests for handler_retrieval (time-decay
  math, store delegation, record annotation)
- Both contracts gain handler_routing sections, removing them from the
  test_all_nodes_have_handler_routing_or_exemption failure list (8→6 remaining)

* chore: release v0.24.0 — bump all dependency pins

* ci: re-trigger CI for release promotion PR

* evidence(OMN-12245): add release promotion receipts

* evidence(OMN-12245): allowlist receipt commit shas

* ci(OMN-12245): rerun after dependency publish

* fix(OMN-12245): remove product-local release receipts

* ci(OMN-12245): rerun after OCC main evidence

* fix(OMN-12245): refresh omniintelligence release locks

* fix(OMN-12245): satisfy omniintelligence release gates

* fix(OMN-12245): allowlist release pin secret scan

* chore(auto-ship): rescue uncommitted work from canonical omniintelligence

Rescue uncommitted canonical work (auto-ship node undeployed).

Rescued files:
- training_manifest.yaml

* ci(OMN-7466): refresh auto-ship rescue gates

* fix(OMN-7466): keep omniintelligence rescue scoped

* docs(OMN-7466): satisfy strict README diff gate

* ci(OMN-12477): remove hotfix/* bypass from main-target-guard (OmniNode-ai#694)

Main now accepts only dev/promotion PRs (with promotion-receipt: OCC-N).
Deletes the hotfix/* allow-block and updates error messaging to drop
hotfix references.

OMN-12477

* chore(deps): update omnibase-core requirement (OmniNode-ai#698)

Updates the requirements on [omnibase-core](https://github.com/OmniNode-ai/omnibase_core) to permit the latest version.
- [Release notes](https://github.com/OmniNode-ai/omnibase_core/releases)
- [Changelog](https://github.com/OmniNode-ai/omnibase_core/blob/dev/CHANGELOG.md)
- [Commits](OmniNode-ai/omnibase_core@v0.42.0...v0.43.0)

---
updated-dependencies:
- dependency-name: omnibase-core
  dependency-version: 0.43.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps): refresh aiohttp lock and stabilize baseline tests (OmniNode-ai#699)

* chore(deps): bump starlette from 0.49.3 to 1.0.1 (OmniNode-ai#700)

* chore(deps): bump starlette from 0.49.3 to 1.0.1

Bumps [starlette](https://github.com/Kludex/starlette) from 0.49.3 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](Kludex/starlette@0.49.3...1.0.1)

---
updated-dependencies:
- dependency-name: starlette
  dependency-version: 1.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: keep starlette dependency PR green

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jonahgabriel <jonah.gabriel@gmail.com>

* chore(deps): update omnibase-core requirement (OmniNode-ai#703)

Updates the requirements on [omnibase-core](https://github.com/OmniNode-ai/omnibase_core) to permit the latest version.
- [Release notes](https://github.com/OmniNode-ai/omnibase_core/releases)
- [Changelog](https://github.com/OmniNode-ai/omnibase_core/blob/dev/CHANGELOG.md)
- [Commits](OmniNode-ai/omnibase_core@v0.42.0...v0.44.0)

---
updated-dependencies:
- dependency-name: omnibase-core
  dependency-version: 0.44.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci(OMN-12825): wire receipt-honesty gate (queue-safe ratchet) (OmniNode-ai#702)

Add `.github/workflows/receipt-honesty.yml` — the OMN-12791 receipt-honesty
validator wired as a CI workflow. Triggers on pull_request + merge_group so
it is queue-safe for a later additive flip to required status check.

The gate is a no-op (PASS) on omniintelligence since the repo carries no committed
drift/dod_receipts/ files; it activates automatically if a PR introduces receipt
YAMLs and will catch gamed probes before merge.

Evidence-Source: b4a423efb853fdfdfb821ae6af5c7a694a585e36
Evidence-Ticket: OMN-12825

* chore(deps): bump the actions group with 2 updates (OmniNode-ai#706)

Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv).


Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

Updates `astral-sh/setup-uv` from 4 to 7
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@v4...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: astral-sh/setup-uv
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs(OMN-13180): refresh omniintelligence documentation (OmniNode-ai#711)

- AGENT.md: corrected Qdrant claim — patterns stored in PostgreSQL, not Qdrant
- README.md: corrected node type counts (Compute 35+→24, Effect 14+→30)
- CLAUDE.md: Runtime Module table updated — dispatch_handlers.py now 31 handlers / 40 routes; all 14 dispatch_handler_*.py modules noted
- docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md: updated Four Node Types counts; added validate_handshake as bootstrap step 2.5; corrected dispatch engine route claim; replaced stale inline inventory with pointer to NODE_INVENTORY.md
- docs/reference/NODE_INVENTORY.md: added node_dispatch_outcome_eval_effect (OMN-12280); documented 7 unregistered node directories; updated last-verified date
- docs/reference/EVENT_SURFACE.md: pattern-scored.v1 moved from deprecated to produced (live since OMN-8161); added dispatch_worker-completed.v1 (consumed) and dispatch-outcome-evaluated.v1 (produced) from OMN-12280; updated last-verified date

Parent: OMN-13172

* chore(OMN-13187): refresh omniintelligence dependencies (OmniNode-ai#712)

* chore(deps): bump cryptography from 46.0.7 to 48.0.1

Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.7 to 48.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@46.0.7...48.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 48.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump python-multipart from 0.0.27 to 0.0.31

Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.27 to 0.0.31.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md)
- [Commits](Kludex/python-multipart@0.0.27...0.0.31)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.31
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump starlette from 1.0.1 to 1.3.1

Bumps [starlette](https://github.com/Kludex/starlette) from 1.0.1 to 1.3.1.
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](Kludex/starlette@1.0.1...1.3.1)

---
updated-dependencies:
- dependency-name: starlette
  dependency-version: 1.3.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump aiohttp from 3.14.0 to 3.14.1

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.14.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(OMN-13187): refresh dependency evidence event

* fix(OMN-13187): route unreachable model fallback to codex

* test(OMN-13187): stabilize default review model test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(OMN-13187): bump pyjwt in omniintelligence (OmniNode-ai#714)

* docs(OMN-13198): retarget ModelOnexEnvelope docstring ref to ModelEventEnvelope (OmniNode-ai#715)

ModelEventBusConfig docstring referenced the legacy ModelOnexEnvelope class
(deleted in B4/OMN-13196). The event bus wraps Kafka messages into the
canonical ModelEventEnvelope. Docstring-only edit; no behavior changed.

* fix: split intelligence subscription startup (OmniNode-ai#716)

* feat(OMN-13298): wire url-authority gate (pre-commit + CI) (OmniNode-ai#719)

* feat(OMN-13298): wire url-authority gate (pre-commit + CI)

Wires the existing check-url-authority remote hook from omnibase_core
and adds url-authority-gate.yml CI workflow. Existing violations are
grandfathered in the shared baseline (seeded via omnibase_core PR #1264).
Only NEW hardcoded URL fingerprints will fail the gate going forward.

- pre-commit hook: check-url-authority (ratchet, burn-down baseline)
- CI workflow: url-authority-gate.yml (REQUIRED STATUS CHECK)
- Baseline: seeded in omnibase_core#1264 (OMN-13298)

Child of OMN-12803.

* fix(OMN-13298): pin url authority validator source

* fix(OMN-13298): run pinned url authority validator in CI

* feat(OMN-13296): add reject-deploy-gate-skip-token pre-commit hook (OmniNode-ai#717)

* feat(OMN-13296): add reject-deploy-gate-skip-token pre-commit hook

Adds skip-token rejection gate (OMN-10414 parity) to local pre-commit:
- .pre-commit-hooks/reject-deploy-gate-skip-token.sh (hook script)
- reject-deploy-gate-skip-token (pre-commit stage)
- reject-deploy-gate-skip-token-commit-msg (commit-msg stage)

CI mirror call-reject-skip.yml was already present; this adds the
local enforcement layer so bypass tokens are caught at commit time,
not only in CI. CLAUDE.md Rule OmniNode-ai#10.

Fail-closed proof: stage a file with [skip-deploy-gate: x] → hook
exits 1 naming OMN-10414; remove token → hook exits 0.

* chore(OMN-13296): refresh skip-token checks

* fix(OMN-13296): place skip-token hooks in pre-commit repos

* fix(OMN-13296): move skip-token hook under validation scripts

* feat(OMN-13297): wire runtime-profiles gate into omniintelligence (OmniNode-ai#718)

* feat(OMN-13297): wire runtime-profiles gate into omniintelligence

W3 from the validator standardization remediation plan (GAP-7).

Verification (F1 pre-file grep confirmed absent before this change):
- `rg "runtime_profile" .pre-commit-config.yaml` → ABSENT (before)
- 67 node contracts, 0 with runtime_profiles

Changes:
- Add validation/runtime_profiles_allowlist.yaml (baseline-freezing 15
  pre-existing command-consuming nodes without runtime_profiles)
- Add scripts/ci/run_runtime_profiles_validator.py (wrapper script that
  loads the repo-local allowlist — mirrors OMN-12955 pattern from omnimarket)
- Add onex-validate-runtime-profiles pre-commit hook to .pre-commit-config.yaml
- Add .github/workflows/validator-runtime-profiles.yml CI gate

Fail-closed proof: planting a cmd-consuming contract without runtime_profiles
not in the allowlist exits non-zero with the specific error message.
Gate blocks NEW orphans; pre-existing ones are allowlisted for drain via OMN-12982.

Evidence-Source: OCC#TBD
Evidence-Ticket: OMN-13297

* fix(OMN-13297): keep runtime profiles allowlist under scripts validation

* fix(OMN-13297): raise runtime profiles uv timeout

* feat(OMN-13249): wire canonical-inference gate (pre-commit + CI) (OmniNode-ai#720)

Fleet rollout of OMN-13219 to omniintelligence: consume the remotely-exposed
check-canonical-inference hook from omnibase_core (pinned to export commit
940d2f2a) as a pre-commit hook + add the Canonical Inference Gate required
CI workflow.

The gate rejects NEW non-canonical model-inference surfaces (shelled
codex/claude/gemini/opencode CLIs, *_MODEL/*_PROVIDER env reads). The 1
existing omniintelligence violation is grandfathered in the shared baseline
(canonical_inference_baseline.json, seeded by core#1265); burn-down only.

Fail-closed proof (verifier = core@940d2f2a validator):
  clean full-repo scan -> exit 0 (0 new, 1 grandfathered).
  (cross-repo plant proof captured on omnimarket; same validator + baseline.)

Evidence-Source: OCC#2757
Evidence-Ticket: OMN-13249

* feat(OMN-13291): wire validate-validator-requirements fleet gate (omniintelligence) (W0) (OmniNode-ai#721)

* feat(OMN-13291): wire validate-validator-requirements fleet gate (omniintelligence)

W0 of the validator-standardization remediation plan (§3 W0). Wires the
validate-validator-requirements meta-gate into omniintelligence as a remote pre-commit hook +
CI workflow, so omniintelligence proves it carries its required validator gate-set declared in
omnibase_core's architecture-handshakes/validator-requirements.yaml.

- Add the omnibase_core remote pre-commit hook (validate-validator-requirements),
  pinned to the core export commit; re-pin to merged-dev once core lands.
- Add .github/workflows/validate-validator-requirements.yml (checks out core,
  runs the consumer against omniintelligence's spec copy + baseline). Reports ALL missing
  gates per run (never fail-on-first).
- Add architecture-handshakes/validator-requirements-baseline.yaml: structured
  schema recording the current accepted gaps (19); shrinks as W1-W10 land.
- Vendor architecture-handshakes/validator-requirements.yaml (spec copy) so the
  pre-commit hook resolves the spec from this repo root (mirrors onex_change_control).

Fail-closed proof captured in the omnibase_core export PR body (verifier != runner).

Parent epic: OMN-9048.

* ci(OMN-13291): satisfy validator requirements hook formatting

* feat(OMN-13283): consume core transport-import + node-purity hooks, delete local io-audit scanner (OmniNode-ai#722)

* feat(OMN-13283): consume core transport-import + node-purity hooks, delete local io-audit scanner

Consolidates omniintelligence's transport/purity gates into the canonical
omnibase_core remote hooks (OMN-13283 / GAP-8a, under OMN-9048):

- Delete the scanner: src/omniintelligence/audit/io_audit.py + __main__.py and
  scripts/validate_no_transport_imports.py, plus tests/audit/test_io_violations.py,
  its io fixtures, tests/audit/io_audit_whitelist.yaml, and the transport-import test.
- KEEP the shared audit data models (enum_io_audit_rule, model_audit_result/metrics/
  violation, model_inline_pragma, model_whitelist_*) — they are consumed by the
  runtime node node_context_audit_aggregator_compute, not the scanner. __init__ trims
  the scanner exports.
- Wire core remote hooks 'validate-no-transport-imports' + 'node-purity' (scoped to
  src/omniintelligence/nodes) in .pre-commit-config.yaml; node-purity excludes mirror
  the former io_audit_whitelist file-scoped exemptions (effect-node handlers, __main__
  entry points, documented compute exemption).
- Repoint the io-audit CI job to run the core node-purity validator with matching
  excludes.

No behavioral regression: both hooks pass clean; audit models still import; fail-closed
proof captured. Pin advances to the core merge SHA once omnibase_core#1272 lands.

Part of OMN-9048 validator-standardization.

* docs(OMN-13283): retarget stale audit links

* ci(OMN-13283): align audit selector with core purity hook

* fix(OMN-9536): drop legacy routing.feedback bare-topic drain in node_routing_feedback_effect (OmniNode-ai#724)

* fix(OMN-9536): drop legacy routing.feedback bare-topic drain

The bare topic "routing.feedback" was re-added by OMN-8157 (PR OmniNode-ai#610) as a
no-op drain subscription, explicitly gated: "Remove after topic is confirmed
empty and purged from Redpanda." Both gating conditions are now met:

- No producer emits to the bare topic anywhere across all repos. The omniclaude
  registration (event_registry.py routing.feedback EventRegistration) fans out
  to TopicBase.ROUTING_FEEDBACK = onex.evt.omniclaude.routing-feedback.v1 (the
  canonical topic), not the bare topic.
- Live Redpanda probe on 192.168.86.201 across all four lanes (dev,
  stability-test, prod, judge): bare routing.feedback topic is ABSENT in every
  lane; canonical onex.evt.omniclaude.routing-feedback.v1 is present.

Removes the bare topic from subscribe_topics, the legacy drain dispatch handler
+ route, handle_legacy_routing_feedback_drain(), the
TOPIC_LEGACY_ROUTING_FEEDBACK_BARE constant, and the drain-only test. Updates
dispatch-engine handler/route count assertions (baseline 30->29 handlers,
37->36 routes) and removes the legacy topic from the contract-topics expected
set. Bumps node_routing_feedback_effect contract 1.2.0 -> 1.2.1.

* ci(OMN-9536): use reachable url authority core pin

* refactor(OMN-13349): decompose claude hook check extraction (OmniNode-ai#723)

* docs(OMN-13455): refresh architecture docs verified against code (OmniNode-ai#725)

* chore(deps): update omnibase-core requirement (OmniNode-ai#729)

Updates the requirements on [omnibase-core](https://github.com/OmniNode-ai/omnibase_core) to permit the latest version.
- [Release notes](https://github.com/OmniNode-ai/omnibase_core/releases)
- [Changelog](https://github.com/OmniNode-ai/omnibase_core/blob/dev/CHANGELOG.md)
- [Commits](OmniNode-ai/omnibase_core@v0.42.0...v0.45.0)

---
updated-dependencies:
- dependency-name: omnibase-core
  dependency-version: 0.45.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(OMN-13495): bump actions/checkout from 6 to 7 (OmniNode-ai#728)

* chore(deps): bump actions/checkout from 6 to 7 in the actions group

Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>

* test(OMN-13495): align dispatch counts for no-LLM env

* fix(OMN-13495): address checkout v7 review hardening

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump pydantic-settings from 2.14.0 to 2.14.2 (OmniNode-ai#731)

Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.14.0 to 2.14.2.
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](pydantic/pydantic-settings@v2.14.0...v2.14.2)

---
updated-dependencies:
- dependency-name: pydantic-settings
  dependency-version: 2.14.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor(OMN-13561): remove scattered os.environ endpoint reads from navigation-retriever docs (Wave 1) (OmniNode-ai#734)

Epic OMN-13556 Wave 1 (endpoints, OVERLAY seam) for omniintelligence.

The url-authority gate flagged three `os.environ["LLM_EMBEDDING_URL"]` /
`os.environ["QDRANT_URL"]` reads inside docstring/Field-description text of
node_navigation_retriever_effect. These are NOT live env reads — the node is a
pure declarative shell and the endpoints are caller-injected via the input
model (already the correct DI pattern). The docstring literals were the only
thing tripping the env-url-read rule. Reworded to describe overlay/routing-
authority resolution without showing a raw env read.

This burns down 3 grandfathered url-authority findings (baseline shrink in the
paired omnibase_core PR). Gate stays green: 0 new violations.

Live integration-endpoint migrations in this repo (QDRANT_URL in the gmail
evaluator handler; MEMGRAPH_URI in dispatch_handler_graph_storage) require the
sanctioned overlay boundary `omnibase_infra.runtime.overlay.contract_env_ref.
expand_contract_env_refs` (OMN-13247). That module is on omnibase_infra dev only
— it is NOT in any released tag (latest v0.38.3 lacks it) and omniintelligence
pins omnibase-infra <0.38.0. Those migrations are deferred until the resolver
ships in a release this repo can pin; vendoring/shimming the resolver is
prohibited (duplication of the sanctioned boundary). LLM_*_URL reads are
Bifrost-owned (OMN-12803/12815) and out of scope.

Wave-1 ticket: OMN-13561. Epic: OMN-13556.

* docs(OMN-13570): sanitize omniintelligence documentation (local-env + OMN-XXXX + renames) (OmniNode-ai#735)

Removes all local-environment traces and Linear ticket references from
the public documentation surface of omniintelligence.

Task 1 — local-env sanitization:
- deployment/docker/README.md: replace 192.168.86.200 with <onex-host>/
  ${ONEX_HOST}, replace ".201" host shorthand with "the runtime host"
- README.md: replace "on .201" with "on the runtime host"
- CLAUDE.md: replace "on .201" with "on the runtime host"

Task 2 — OMN-XXXX ticket ref removal (15 files):
- CHANGELOG.md: strip OMN-XXXX from all feat/fix/test/ci prefixes,
  inline tags, and parenthetical refs across full version history
- CLAUDE.md: remove (OMN-12280) dispatch count annotation; rewrite
  (OMN-2253)/(OMN-2058) API purpose prose; replace TODO(OMN-1234)
  illustrative code with generic TICKET-123 placeholder
- docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md: remove (OMN-13455)
  from last-updated footer
- docs/architecture/contract-package-spec.md: remove **Ticket**: OMN-7142 header
- docs/INDEX.md: remove (OMN-13455) from status table
- docs/reference/NODE_INVENTORY.md: remove (OMN-13455) + (OMN-12280) annotations
- docs/reference/EVENT_SURFACE.md: rewrite four OMN-tagged descriptions
- docs/reference/DASH_INTEGRATION_TRUTH_BOUNDARY.md: remove (OMN-2366) drain tag
- docs/standards/STANDARD_DOC_LAYOUT.md: rename plans/OMN-1757-* example path
- deployment/database/FK_SCAN_REPORT.md: remove **Ticket**/**Parent** header fields
- scripts/validation/topic_naming_baseline.txt: remove (OMN-3259) from comment
- src/omniintelligence/audit/README.md: replace OMN-123/456 in YAML examples
- src/omniintelligence/review_pairing/TOPICS.md: remove (OMN-2353) subsystem ref +
  OMN-2535 reference footer

No source code, contracts, or CI yaml touched.

Evidence-Ticket: OMN-13570
Evidence-Source: 87fb618f0273a5694123aed70aa25e4f8a3d1953

* chore(ci): propagate normalization-symmetry-hook [bot] (OmniNode-ai#738)

Co-authored-by: onex-propagate-bot <bot@omninode.ai>

* chore(OMN-13162): bump actions/cache to v6 (OmniNode-ai#740)

* chore(deps): bump tuf from 6.0.0 to 7.0.0 (OmniNode-ai#741)

Bumps [tuf](https://github.com/theupdateframework/python-tuf) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/theupdateframework/python-tuf/releases)
- [Changelog](https://github.com/theupdateframework/python-tuf/blob/develop/docs/CHANGELOG.md)
- [Commits](theupdateframework/python-tuf@v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: tuf
  dependency-version: 7.0.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump omnibase_core to 0.46.1 (OmniNode-ai#743)

* feat(OMN-13802): add Cursor hook event effect (OmniNode-ai#744)

* Add Cursor hook-event consumer + agent_source seam

Surface the OmniCursor dispatcher backend draft for OmniNode review
(ask H.1 of the 2026-06-23 response to OMNICURSOR_DISPATCHER_PLAN),
rebased onto current dev (ask H.2).

- node_cursor_hook_event_effect: peer of node_claude_hook_event_effect
  (route_cursor_hook_event), with handler, models, registry and tests
- agent_source seam on route_hook_event (defaults to "claude"; additive,
  Claude path unchanged) threaded onto emitted events
- CURSOR_HOOK_EVENT topic + dispatch/wiring/message-type registration

Rebase reconciliation against live dev (H.2):
- merged DISPATCH_ALIAS_CURSOR_HOOK into __all__ alongside dev's new
  DISPATCH_OUTCOME_EVALUATED / DISPATCH_WORKER_COMPLETED aliases
- corrected the dispatch-engine assertions: with the cursor node wired
  onto dev's baseline the true counts are 30 handlers / 37 routes
  (dev's 29/36 + 1 cursor each). The pre-rebase draft asserted 29/36,
  which only passed by number-collision with dev's cursor-less totals.

Verified: full node_claude_hook_event_effect suite + dispatch + cursor +
topic/registration tests all green (317 passed) with the W1 omnibase_core
cursor models present.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(OMN-13802): add cursor hook event effect

* chore(OMN-13802): format cursor hook contract

---------

Co-authored-by: andywu42 <awu42@dons.usfca.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* feat(OMN-13877): dep-provenance gate — omniintelligence (+OMN-13878 escape tokens) (OmniNode-ai#745)

* feat(OMN-13877): dep-provenance gate — omniintelligence (+OMN-13878 escape tokens)

Add the dep-provenance gate (OMN-13873) to omniintelligence: forbid
first-party git-source overrides of omnibase-core / omnibase-spi /
omnibase-compat in [tool.uv.sources]. Copied verbatim from omnibase_infra:

  - scripts/check_dep_provenance.py
  - .github/workflows/dep-provenance-gate.yml
  - tests/scripts/test_check_dep_provenance.py

Wire the check-dep-provenance local hook into .pre-commit-config.yaml.

This repo currently violates the gate (omnibase-core rev=, omnibase-spi
tag=). Escape-token both existing lines to OMN-13878 so the gate lands
green without changing any pin value; the drain of those overrides is
tracked by OMN-13878.

* test(OMN-13877): allowlist fixture git-rev hashes for detect-secrets

The verbatim-copied dep-provenance test fixtures embed example git rev
SHAs (omnibase_infra #2184 reproduction + occ-only allow case). This
repo's Detect Secrets CI gate flags them as Hex High Entropy Strings.
Annotate the three fixture lines with '# pragma: allowlist secret'
(comment on an implicitly-concatenated string piece — no behavior change;
all 11 tests still pass). omnibase_infra's own secrets baseline already
allowlisted these; this repo scans tests/scripts/ so needs the inline mark.

* ci(OMN-13875): Quality Gate actually evaluates contract-compliance (OmniNode-ai#746)

* ci(OMN-13875): Quality Gate actually evaluates contract-compliance

contract-compliance was in quality-gate's needs: but its .result was
never read — a decorative dependency, so a Contract Compliance Check
failure did not block merge. Read it and fail the gate on failure.
Success-or-skipped tolerance only applies to non-gating events; on
pull_request/merge_group it always runs, so nothing slips via skipped.
quality-gate feeds the required CI Summary (requires quality==success),
so the fix propagates.

Evidence-Source: workflow-logic fix, no Python touched.

* test(OMN-13885): bump handler/route baselines +1 for OMN-13802 cursor-hook

OMN-13802 (OmniNode-ai#744) added the cursor-hook event effect: +1 baseline handler
(intelligence-cursor-hook-handler) and +1 baseline route
(intelligence-cursor-hook-route), plus a new node dir
node_cursor_hook_event_effect. The drift-detector baselines were not bumped,
turning omniintelligence dev red on Unit Tests -> CI Summary (blocks all dev PRs).

Confirmed live counts locally (env -u PYTHONPATH, pinned core rev 5698f6f):
- with projection:    handler_count=31, route_count=40
- without projection: handler_count=30, route_count=37

Updated:
- test_pattern_stored_triggers_projection.py: 30->31 / 39->40 (proj), 29->30 (base)
- test_projection_handler_registration.py: 29->30, 36->37
- test_plugin_dispatch.py: 39->40, 30->31
- test_package_installability.py: EXPECTED_NODE_DIRS += node_cursor_hook_event_effect

Full tests/unit green (5562+ passed). Unblocks OMN-13875 PR OmniNode-ai#746.

* fix(OMN-13887): migrate omniintelligence dispatch off removed core MessageDispatchEngine + repin to PyPI (OMN-13878) (OmniNode-ai#748)

omnibase_core removed runtime.runtime_message_dispatch.MessageDispatchEngine
in 0.46.x. Migrate the Intelligence runtime onto the canonical successor
(omnibase_infra.runtime.message_dispatch_engine.MessageDispatchEngine, the
same engine omnimarket uses) via a single envelope-rehydration adapter seam
so all ~30 domain handlers stay behavior-preserving and untouched.

- dispatch_handlers.py: add _rehydrate_dispatch_envelope + _adapt_context_dispatcher
  + _register_dispatcher_adapted. The infra engine materializes every envelope
  to a JSON-safe dict at the dispatch boundary (OMN-1518) and treats a non-None
  str return as an output topic; the adapter restores a ModelEventEnvelope view
  (payload/correlation_id/event_type/timestamp from __debug_trace) and normalizes
  status-sentinel returns ("ok"/"skip"/...) to None.
- plugin.py + dispatch_handlers.py: register_handler->register_dispatcher,
  handler_count->dispatcher_count, result.handler_id->result.dispatcher_id.
- add tests/unit/runtime/test_dispatch_envelope_adapter.py (12 cases) covering
  the new boundary seam.
- pyproject/uv.lock: repin omnibase-core 0.46.3 + omnibase-spi 0.23.1 from PyPI,
  bump infra to the core-0.46 dev rev, delete both raw-override-ok:OMN-13878
  tokens and the core/spi git sources; ceilings <0.47.0 / <0.24.0.

Closes the omniintelligence lane of OMN-13878 (4/4 token-free).

Full CI-scoped suite (tests/ --ignore=tests/integration, matching ci.yml): 5675
passed, 0 failed. The 12 integration failures + e2e errors reproduce identically
on clean origin/dev (service/pytest-asyncio, excluded from CI) — no regression.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: onex-propagate-bot <bot@omninode.ai>
Co-authored-by: andywu42 <awu42@dons.usfca.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* chore(deps): bump omnibase_core to 0.46.4

Automated dependency cascade from OmniNode-ai/omnibase_core release v0.46.4.

Triggered-by: https://github.com/OmniNode-ai/omnibase_core/actions/runs/28660603530

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: onex-propagate-bot <bot@omninode.ai>
Co-authored-by: andywu42 <awu42@dons.usfca.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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