omninode-memory 0.18.2__tar.gz → 0.18.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/required-checks.yaml +14 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/auto-merge.yml +35 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/auto-tag-on-merge.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/ban-hardcoded-runner-ip.yml +5 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/call-reject-skip.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/check-handshake.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/ci.yml +119 -2
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/dep-provenance-gate.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/docs-validate.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/imperative-contract-guard.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/kb-doc-gate.yml +5 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/main-target-guard.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/omni-standards-compliance.yml +4 -0
- omninode_memory-0.18.3/.github/workflows/pin-resolvability-gate.yml +111 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/pr-title-check.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/pre-commit.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/public-repo-hygiene.yml +5 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/release.yml +18 -0
- omninode_memory-0.18.3/.github/workflows/secrets-baseline-wiring.yml +39 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/security-scan.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/stale-todo-gate.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/todo-audit-on-merge.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/url-authority-gate.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/validate-validator-requirements.yml +4 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.gitignore +40 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.pre-commit-config.yaml +110 -28
- omninode_memory-0.18.3/.secrets.baseline +500 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/CHANGELOG.md +10 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/PKG-INFO +1 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/architecture-handshakes/validator-requirements-baseline.yaml +0 -10
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/pyproject.toml +7 -1
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/check_no_hardcoded_bolt.sh +19 -5
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/test_selection_adjacency.yaml +10 -0
- omninode_memory-0.18.3/scripts/ci/verify_pypi_pin_resolvability.py +348 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validate_ci_precommit_alignment.py +21 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +8 -3
- omninode_memory-0.18.3/scripts/validation/check_no_internal_ips.sh +17 -0
- omninode_memory-0.18.3/scripts/validation/check_precommit_additional_dependencies.sh +82 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_naming.py +14 -9
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_no_backward_compatibility.py +25 -11
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_no_env_fallbacks.py +13 -2
- omninode_memory-0.18.3/tests/fixtures/omn19666/pre-commit-git-dependency.yaml +12 -0
- omninode_memory-0.18.3/tests/fixtures/omn19666/pre-commit-pypi-dependency.yaml +12 -0
- omninode_memory-0.18.3/tests/scripts/test_pin_resolvability_conflict_report.py +115 -0
- omninode_memory-0.18.3/tests/scripts/test_pin_resolvability_gate_workflow.py +129 -0
- omninode_memory-0.18.3/tests/test_precommit_additional_dependencies_omn19666.sh +23 -0
- omninode_memory-0.18.3/tests/test_precommit_staged_scope_omn19612.py +205 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_validate_ci_precommit_alignment.py +12 -1
- omninode_memory-0.18.3/tests/workflows/test_auto_merge_ready_for_review_omn19216.py +88 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/workflows/test_auto_merge_workflow.py +19 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/uv.lock +10 -10
- omninode_memory-0.18.2/.secrets.baseline +0 -196
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.claude/architecture-handshake.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.env.example +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.flake8 +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/CODE_OF_CONDUCT.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/CONTRIBUTING.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/dependabot.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/build-and-push-migrate-image.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/call-occ-autobind.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/call-occ-companion-effect.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/contract-validation.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/release-dry-run.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/sibling-lock-refresh.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/validator-runtime-profiles.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.kb-doc-gate.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.markdown-link-check.json +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.onex_ratchets/noncanonical_class_allowlist.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.pre-commit-hooks/reject-deploy-gate-skip-token.sh +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.public-repo-hygiene.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.serena/project.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.yamlfmt +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/CLAUDE.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/LICENSE +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/README.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/SECURITY.md +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/architecture-handshakes/validator-requirements.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/contracts/OMN-12245.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/002_create_memories_table.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/docker/Dockerfile.migrate +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docker-compose.prod.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docker-compose.yml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-icon-black.png +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-icon-full-color.svg +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-icon-white.png +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-inline-black.png +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-inline-full-color.svg +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-inline-white.png +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-stacked-black.png +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-stacked-full-color.svg +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-stacked-white.png +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-wordmark-black.svg +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-wordmark-grey.svg +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-wordmark-white.svg +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/examples/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/examples/advanced_architecture_demo.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/pyrightconfig.json +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/check_dep_provenance.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/check_migration_freeze.sh +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/collect_changed_files.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/detect_test_paths.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/occ_manual_replay_precheck.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/run_runtime_profiles_validator.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/test_selection_loader.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/test_selection_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/graphify_to_memgraph.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/graphify_to_qdrant.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/check_ai_slop.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/foundation_validation_common.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_enum_casing.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_http_imports.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_kafka_imports.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_model_locations.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_pydantic_patterns.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_secrets.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_single_class_per_file.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_spdx_headers.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/_compat_imports.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_concurrency.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_correlation_context.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_db_url.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_error_sanitizer.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_handler_constants.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_health_manager.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_metrics_counter.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_observability_wrapper.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_pii_detector.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_resource_manager.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_retry_utils.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/bootstrap.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_context_item_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_data_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_error_code.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_memory_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_migration_status.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_node_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_operation_status.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_preferred_tone.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_priority_level.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_severity.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_subscription_status.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_technical_level.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_trust_level.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/errors/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/errors/embedding_errors.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_intent_graph_contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/handler_intent.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/handler_subscription.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/handler_subscription_contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_embedding_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_postgres_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/container/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_context.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_provenance.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/types.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/events/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_configuration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_error_details.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_health_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_notes.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_priority.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_semver.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_system_health.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_tags.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_user.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_item.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_query.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/persona/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/persona/model_persona_signal.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/persona/model_user_persona_v1.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/model_service_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/model_service_health.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/model_service_registry.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/constants.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/model_subscription.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_audit.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_concurrency.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_status.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_match.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_type.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_retry_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_system_health.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/base.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/handler_agent_learning_retrieval.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/mappers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/mappers/util_intent_mapping.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/adapter_kreuzberg_client.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/adapter_embedding_client.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/contract_descriptor.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_decay.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_fusion.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/handlers/handler_persona_classify.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_result.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/adapters/adapter_postgres_persona.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/base_protocols.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/data_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/error_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_embedding.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/adapters.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/contract_topics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/handler_lifecycle.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/handler_lifecycle_contract.yaml +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/introspection.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/message_type_registration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/plugin.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/wiring.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/secrets.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/settings.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/contract_linter.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/validators/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/validators/validator_contract.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/topics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/conftest.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/gates/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/gates/test_ban_hardcoded_runner_ip_scope.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/gates/test_consumer_group_name_authorization.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/test_handler_intent.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/test_handler_semantic_compute.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/conftest.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_entry_point_discovery.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_golden_chain_memgraph_ingestion.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_golden_chain_qdrant_ingestion.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_handler_subscription.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_node_agent_coordinator.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_persona_round_trip.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/contracts/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/contracts/test_extended_contracts.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/events/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/events/test_model_intent_classified_event.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/test_frozen_boundary_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/test_contract_descriptor.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/test_dispatch_entrypoint_contract.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/scripts/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/scripts/test_check_dep_provenance.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_bootstrap.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_concurrency.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_config_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_contract_validation.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_contract_version.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_db_url.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_foundation.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_health_manager.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_migration_progress.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_node_enforcement.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_node_imports.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_observability_manager.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_observability_metrics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_performance.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_resource_manager.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_secrets_provider.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_settings.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_validation_scripts.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/adapters/test_adapter_pii_detector.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/adapters/test_pii_live_call_paths.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/test_subscription_typing.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/fixtures/omn16765/hybrid_retrieval_corpus.json +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_activation_decay.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_decay_ranking.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_handler_agent_learning_retrieval.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_handler_qdrant.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_handler_routing_boot_resolvable.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_hybrid_retrieval_fusion.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_navigation_history_reducer_contract.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_node_agent_learning_retrieval_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_persona_builder.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_persona_storage_retrieval.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/conftest.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_adapters.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_contract_handler_completeness.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_contract_topics.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_introspection.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_memory_subscription_group_is_authorized.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_message_type_registration.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin_integration_wiring.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_standalone_handler_contracts.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_wiring.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/test_check_ai_slop.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/test_collect_changed_files.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/test_occ_manual_replay_precheck.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_auto_tag_app_token_push_omn18662.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_ci_workflow_shape.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_contract_linter.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_detect_test_paths.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_dispatch_retrieval_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_entry_points.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_graphify_to_memgraph.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_graphify_to_qdrant.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_ingestion_models.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_model_user_persona_v1.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_no_duplicate_node_uuids.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_occ_companion_effect_edited_trigger_omn_18334.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_persona_enums.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_scope_mapping_config.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_sql_placeholders.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_validate_kafka_imports.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/workflows/__init__.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/validate_architecture_improvements.py +0 -0
- {omninode_memory-0.18.2 → omninode_memory-0.18.3}/validation/runtime_profiles_allowlist.yaml +0 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# Applied via: gh api repos/OmniNode-ai/omnimemory/branches/main/protection -X PUT
|
|
16
16
|
# Mode: strict (branch must be up-to-date before merging)
|
|
17
|
-
# Total required checks:
|
|
17
|
+
# Total required checks: 12
|
|
18
18
|
|
|
19
19
|
required_checks:
|
|
20
20
|
# -- Phase 1: Quick Validation (parallel, ~2-5 min) -------------------------
|
|
@@ -75,6 +75,19 @@ required_checks:
|
|
|
75
75
|
condition: "Skipped when no Python/Markdown files changed in the PR diff"
|
|
76
76
|
rationale: "Prevents AI-generated slop patterns from entering the codebase (OMN-2972)"
|
|
77
77
|
|
|
78
|
+
- name: "Detect Secrets"
|
|
79
|
+
workflow: ci.yml
|
|
80
|
+
job_id: detect-secrets
|
|
81
|
+
conditional: false
|
|
82
|
+
rationale: >-
|
|
83
|
+
OMN-18669. Judges the tracked set against .secrets.baseline with
|
|
84
|
+
detect-secrets-hook. Gates merges through the required CI Summary
|
|
85
|
+
context, which needs: this job and accepts only a success result --
|
|
86
|
+
skipped, cancelled and failure all block. Its selection and exclusions
|
|
87
|
+
are identical to the detect-secrets pre-commit hook by construction;
|
|
88
|
+
tests/unit/test_validate_ci_precommit_alignment.py fails if the pair
|
|
89
|
+
drifts apart.
|
|
90
|
+
|
|
78
91
|
# -- Phase 2: Full Test Suite ------------------------------------------------
|
|
79
92
|
|
|
80
93
|
- name: "Tests"
|
|
@@ -21,11 +21,21 @@
|
|
|
21
21
|
# workflow is NOT a required status check on dev, so narrowing it cannot
|
|
22
22
|
# wedge branch protection (verified live via required_status_checks readback
|
|
23
23
|
# before landing).
|
|
24
|
+
# OMN-19216 (2026-09-22): RE-ADD `ready_for_review` to the pull_request
|
|
25
|
+
# trigger, by operator decision. OMN-14777 dropped it because the ready
|
|
26
|
+
# flip force-armed PRs someone meant to hold; since then a PR opened as a
|
|
27
|
+
# draft was never armed by its flip and needed a manual arming step.
|
|
28
|
+
# This repository has no OMN-18179 hold gate; the author gate below and
|
|
29
|
+
# the already-armed guard are what bound arming on the flip.
|
|
30
|
+
# Arming stays limited to the allowed author (the resolve step reads the
|
|
31
|
+
# PR author from the payload, not the sender who flipped it), and the
|
|
32
|
+
# Enable step returns early when the PR is already armed, so a ready flip
|
|
33
|
+
# racing a check_suite or review event cannot arm twice.
|
|
24
34
|
name: Auto-Merge
|
|
25
35
|
|
|
26
36
|
on:
|
|
27
37
|
pull_request:
|
|
28
|
-
types: [opened]
|
|
38
|
+
types: [opened, ready_for_review]
|
|
29
39
|
pull_request_review:
|
|
30
40
|
types: [submitted, dismissed]
|
|
31
41
|
check_suite:
|
|
@@ -41,6 +51,22 @@ permissions:
|
|
|
41
51
|
contents: write
|
|
42
52
|
pull-requests: write
|
|
43
53
|
|
|
54
|
+
# OMN-19216: one arming run per PR at a time. A newer event queues behind
|
|
55
|
+
# a running one instead of racing it; the already-armed guard makes the
|
|
56
|
+
# queued run a no-op. Every arming path carries a PR number. The constant
|
|
57
|
+
# fallback covers only a check_suite with no associated PR, which the
|
|
58
|
+
# resolve step skips, and it keeps those in one group rather than giving
|
|
59
|
+
# each run a unique key that would serialize nothing.
|
|
60
|
+
concurrency:
|
|
61
|
+
group: >-
|
|
62
|
+
${{ github.workflow }}-${{
|
|
63
|
+
github.event.pull_request.number ||
|
|
64
|
+
github.event.inputs.pr_number ||
|
|
65
|
+
github.event.check_suite.pull_requests[0].number ||
|
|
66
|
+
'no-pr'
|
|
67
|
+
}}
|
|
68
|
+
cancel-in-progress: false
|
|
69
|
+
|
|
44
70
|
jobs:
|
|
45
71
|
auto-merge:
|
|
46
72
|
name: Enable Auto-Merge
|
|
@@ -96,6 +122,14 @@ jobs:
|
|
|
96
122
|
PR: ${{ steps.resolve.outputs.pr }}
|
|
97
123
|
run: |
|
|
98
124
|
set -euo pipefail
|
|
125
|
+
# OMN-19216: a ready flip, a check_suite completion and a review can each
|
|
126
|
+
# reach this step for one PR. An already-armed PR is left alone rather
|
|
127
|
+
# than armed a second time.
|
|
128
|
+
armed="$(gh pr view "$PR" --repo "$GH_REPO" --json autoMergeRequest --jq '.autoMergeRequest != null')"
|
|
129
|
+
if [ "$armed" = "true" ]; then
|
|
130
|
+
echo "PR #${PR} is already armed; not arming again (OMN-19216)."
|
|
131
|
+
exit 0
|
|
132
|
+
fi
|
|
99
133
|
# OMN-13138/13214: on a queue-controlled branch the merge method is
|
|
100
134
|
# set by the merge queue, so passing an explicit --squash is
|
|
101
135
|
# rejected ("The merge strategy for dev is set by the merge queue")
|
|
@@ -33,6 +33,10 @@ on:
|
|
|
33
33
|
# left byte-unchanged for whatever still calls it. Precedent and shape:
|
|
34
34
|
# omnibase_core#1703 and omnibase_spi#308, under OMN-18658.
|
|
35
35
|
|
|
36
|
+
concurrency:
|
|
37
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
38
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
39
|
+
|
|
36
40
|
jobs:
|
|
37
41
|
auto-tag:
|
|
38
42
|
if: >-
|
{omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/ban-hardcoded-runner-ip.yml
RENAMED
|
@@ -22,11 +22,15 @@ on:
|
|
|
22
22
|
- tests/**
|
|
23
23
|
merge_group:
|
|
24
24
|
|
|
25
|
+
concurrency:
|
|
26
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
27
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
28
|
+
|
|
25
29
|
jobs:
|
|
26
30
|
ban-hardcoded-runner-ip:
|
|
27
31
|
# OMN-17993: pinned to an exact SHA, not @main. omniclaude main lags dev by
|
|
28
32
|
# design (release-synced), so @main still resolves to the pre-widening scanner
|
|
29
33
|
# body that scans workflow files only and exits 0 on a tests-only diff.
|
|
30
|
-
uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@
|
|
34
|
+
uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
|
|
31
35
|
permissions:
|
|
32
36
|
contents: read
|
|
@@ -18,6 +18,10 @@ on:
|
|
|
18
18
|
branches: [main, dev]
|
|
19
19
|
merge_group:
|
|
20
20
|
|
|
21
|
+
concurrency:
|
|
22
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
23
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
24
|
+
|
|
21
25
|
permissions:
|
|
22
26
|
contents: read
|
|
23
27
|
pull-requests: read
|
|
@@ -10,6 +10,10 @@ on:
|
|
|
10
10
|
merge_group:
|
|
11
11
|
workflow_dispatch:
|
|
12
12
|
|
|
13
|
+
concurrency:
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
15
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
16
|
+
|
|
13
17
|
jobs:
|
|
14
18
|
check-handshake:
|
|
15
19
|
name: Check architecture handshake
|
|
@@ -150,7 +150,7 @@ jobs:
|
|
|
150
150
|
onex-validation:
|
|
151
151
|
name: ONEX Validation
|
|
152
152
|
runs-on: ubuntu-latest
|
|
153
|
-
timeout-minutes:
|
|
153
|
+
timeout-minutes: 30
|
|
154
154
|
|
|
155
155
|
steps:
|
|
156
156
|
- name: Checkout code
|
|
@@ -162,6 +162,9 @@ jobs:
|
|
|
162
162
|
- name: Install dependencies
|
|
163
163
|
run: uv sync --locked --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
|
|
164
164
|
|
|
165
|
+
- name: Run the whole-tree pre-commit suite
|
|
166
|
+
run: uv run pre-commit run --all-files --show-diff-on-failure
|
|
167
|
+
|
|
165
168
|
# SYNC: Pre-commit hook 'validate-pydantic-patterns' at pre-commit stage
|
|
166
169
|
- name: Validate Pydantic patterns
|
|
167
170
|
run: uv run python scripts/validation/validate_pydantic_patterns.py src/
|
|
@@ -202,6 +205,33 @@ jobs:
|
|
|
202
205
|
- name: Validate no silent env fallbacks
|
|
203
206
|
run: uv run python scripts/validation/validate_no_env_fallbacks.py
|
|
204
207
|
|
|
208
|
+
# SYNC: Pre-commit hook 'validate-model-locations' at pre-commit stage
|
|
209
|
+
- name: Validate model locations
|
|
210
|
+
run: uv run python scripts/validation/validate_model_locations.py src/
|
|
211
|
+
|
|
212
|
+
# SYNC: Pre-commit hook 'no-hardcoded-bolt-fallback' at pre-commit stage
|
|
213
|
+
- name: Validate no hardcoded bolt fallback (whole-tree backstop)
|
|
214
|
+
run: bash scripts/check_no_hardcoded_bolt.sh
|
|
215
|
+
|
|
216
|
+
# SYNC: Pre-commit hook 'kafka-no-hardcoded-fallback' at pre-commit stage
|
|
217
|
+
- name: Validate no hardcoded Kafka fallback (whole-tree backstop)
|
|
218
|
+
run: bash scripts/validation/check_kafka_no_hardcoded_fallback.sh
|
|
219
|
+
|
|
220
|
+
# SYNC: Pre-commit hook 'no-internal-ips' at pre-commit stage
|
|
221
|
+
- name: Validate no internal IPs (whole-tree backstop)
|
|
222
|
+
run: bash scripts/validation/check_no_internal_ips.sh
|
|
223
|
+
|
|
224
|
+
# CI counterpart of the no-git-precommit-additional-dependencies hook.
|
|
225
|
+
- name: Pre-commit dependencies come from package indexes (OMN-19666)
|
|
226
|
+
run: bash tests/test_precommit_additional_dependencies_omn19666.sh
|
|
227
|
+
|
|
228
|
+
# SYNC: Pre-commit hook 'validate-gitignore-baseline' at pre-commit stage (OMN-18033)
|
|
229
|
+
# This step and the hook both pin released omnibase-core==0.47.23,
|
|
230
|
+
# matching uv.lock and carrying the packaged baseline spec; move them together.
|
|
231
|
+
# OMN-19666: do not use git+ URLs for this validator.
|
|
232
|
+
- name: Validate gitignore baseline (OMN-18033)
|
|
233
|
+
run: uv run --isolated --no-project --with "omnibase-core==0.47.23" python -m omnibase_core.validators.gitignore_baseline .
|
|
234
|
+
|
|
205
235
|
- name: ONEX validation summary
|
|
206
236
|
if: always()
|
|
207
237
|
run: |
|
|
@@ -218,6 +248,9 @@ jobs:
|
|
|
218
248
|
echo "- Kafka import boundary enforcement (ARCH-002)" >> $GITHUB_STEP_SUMMARY
|
|
219
249
|
echo "- Pydantic model location enforcement" >> $GITHUB_STEP_SUMMARY
|
|
220
250
|
echo "- No silent env fallbacks (OMN-10735)" >> $GITHUB_STEP_SUMMARY
|
|
251
|
+
echo "- No hardcoded bolt fallback" >> $GITHUB_STEP_SUMMARY
|
|
252
|
+
echo "- No hardcoded Kafka fallback" >> $GITHUB_STEP_SUMMARY
|
|
253
|
+
echo "- No hardcoded internal IPs" >> $GITHUB_STEP_SUMMARY
|
|
221
254
|
|
|
222
255
|
# Phase 1 - Transport Import Guard (ARCH-002)
|
|
223
256
|
# SYNC: Pre-commit hook 'validate-no-transport-imports' (omnibase_core remote hook)
|
|
@@ -624,10 +657,87 @@ jobs:
|
|
|
624
657
|
--allowlist .onex_ratchets/noncanonical_class_allowlist.yaml \
|
|
625
658
|
src/omnimemory
|
|
626
659
|
|
|
660
|
+
# ============================================================================
|
|
661
|
+
# Detect Secrets - the CI half of the .secrets.baseline gate (OMN-18669)
|
|
662
|
+
# ============================================================================
|
|
663
|
+
# This repository carried a committed `.secrets.baseline` that NO hook and NO
|
|
664
|
+
# workflow read. Measured 2026-09-18 (integration probe R9): the file was
|
|
665
|
+
# present, the repository looked protected, and a full scan against it
|
|
666
|
+
# surfaced 47 findings in 18 files nothing had ever been asked to approve.
|
|
667
|
+
# Nobody had loosened a gate -- there was no gate.
|
|
668
|
+
#
|
|
669
|
+
# Uses detect-secrets-hook, which compares findings to the baseline on the
|
|
670
|
+
# full equality model (hashed_secret + type) and exits non-zero only for
|
|
671
|
+
# findings NOT already baselined. Same pin, same baseline and the same
|
|
672
|
+
# exclusions as the `detect-secrets` pre-commit hook in
|
|
673
|
+
# .pre-commit-config.yaml -- if the two selections differ, a commit passes
|
|
674
|
+
# locally and this check fails, or worse, the reverse.
|
|
675
|
+
#
|
|
676
|
+
# Wired into the required `CI Summary` context through needs: below, with a
|
|
677
|
+
# strict success-only verdict, so it gates merges rather than advising.
|
|
678
|
+
detect-secrets:
|
|
679
|
+
name: Detect Secrets
|
|
680
|
+
runs-on: ubuntu-latest
|
|
681
|
+
timeout-minutes: 5
|
|
682
|
+
|
|
683
|
+
steps:
|
|
684
|
+
- name: Checkout code
|
|
685
|
+
uses: actions/checkout@v7
|
|
686
|
+
|
|
687
|
+
- name: Set up Python
|
|
688
|
+
uses: actions/setup-python@v7
|
|
689
|
+
with:
|
|
690
|
+
python-version: "3.12"
|
|
691
|
+
|
|
692
|
+
# detect-secrets is a CI-only scanning tool, not a project dependency.
|
|
693
|
+
# Installed via pip (not uv) because it is not declared in pyproject.toml.
|
|
694
|
+
- name: Install detect-secrets
|
|
695
|
+
run: pip install detect-secrets==1.5.0
|
|
696
|
+
|
|
697
|
+
- name: Run detect-secrets-hook
|
|
698
|
+
run: |
|
|
699
|
+
# -n/--no-verify (OMN-15063): several plugins (SlackDetector,
|
|
700
|
+
# StripeDetector, ...) call the live vendor API to "verify" each
|
|
701
|
+
# regex-matched candidate, then silently drop anything that comes
|
|
702
|
+
# back VERIFIED_FALSE. A negative or uncertain live-verification
|
|
703
|
+
# result must not silently remove a finding (fail-closed). Never
|
|
704
|
+
# remove this flag without re-proving the miss is fixed another way.
|
|
705
|
+
set +e
|
|
706
|
+
git ls-files -z | xargs -0 detect-secrets-hook \
|
|
707
|
+
--no-verify \
|
|
708
|
+
--baseline .secrets.baseline \
|
|
709
|
+
--exclude-files 'uv\.lock' \
|
|
710
|
+
--exclude-files '\.venv/' \
|
|
711
|
+
--exclude-files 'tests/fixtures/' \
|
|
712
|
+
--exclude-files '\.git/' \
|
|
713
|
+
--exclude-files '\.secrets\.baseline' \
|
|
714
|
+
--exclude-files '\.github/workflows/.*\.ya?ml' # workflow YAML legitimately references the secrets context
|
|
715
|
+
HOOK_EXIT=$?
|
|
716
|
+
set -e
|
|
717
|
+
|
|
718
|
+
if [[ $HOOK_EXIT -eq 0 ]]; then
|
|
719
|
+
echo "## Secrets Scan" >> $GITHUB_STEP_SUMMARY
|
|
720
|
+
echo "No new secrets detected (all findings are baselined)." >> $GITHUB_STEP_SUMMARY
|
|
721
|
+
else
|
|
722
|
+
echo "## New Secrets Detected" >> $GITHUB_STEP_SUMMARY
|
|
723
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
724
|
+
echo "Findings are present that .secrets.baseline does not carry." >> $GITHUB_STEP_SUMMARY
|
|
725
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
726
|
+
echo "If they are real, remove them and rotate under the credential-rotation" >> $GITHUB_STEP_SUMMARY
|
|
727
|
+
echo "runbook. If they are false positives, audit them into the baseline:" >> $GITHUB_STEP_SUMMARY
|
|
728
|
+
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
729
|
+
echo 'detect-secrets scan --no-verify --exclude-files "uv\.lock" --exclude-files "\.venv/" --exclude-files "tests/fixtures/" --exclude-files "\.git/" --exclude-files "\.secrets\.baseline" --exclude-files "\.github/workflows/.*\.ya?ml" --force-use-all-plugins > .secrets.baseline' >> $GITHUB_STEP_SUMMARY
|
|
730
|
+
echo 'detect-secrets audit .secrets.baseline' >> $GITHUB_STEP_SUMMARY
|
|
731
|
+
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
732
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
733
|
+
echo "Never loosen the hook or widen the exclusions to clear this." >> $GITHUB_STEP_SUMMARY
|
|
734
|
+
exit $HOOK_EXIT
|
|
735
|
+
fi
|
|
736
|
+
|
|
627
737
|
ci-summary:
|
|
628
738
|
name: CI Summary
|
|
629
739
|
runs-on: ubuntu-latest
|
|
630
|
-
needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes]
|
|
740
|
+
needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes, detect-secrets]
|
|
631
741
|
if: always()
|
|
632
742
|
|
|
633
743
|
steps:
|
|
@@ -640,6 +750,13 @@ jobs:
|
|
|
640
750
|
echo "::error::no-noncanonical-lifecycle-classes ratchet did not pass (result: ${{ needs.no-noncanonical-lifecycle-classes.result }}) - fail-closed (OMN-14350)"
|
|
641
751
|
exit 1
|
|
642
752
|
fi
|
|
753
|
+
# OMN-18669: strict fail-closed gate on the secrets scan - only 'success'
|
|
754
|
+
# passes; skipped/cancelled/failure ALL block. A secrets gate that a
|
|
755
|
+
# skipped job can satisfy is the state this ticket exists to remove.
|
|
756
|
+
if [[ "${{ needs.detect-secrets.result }}" != "success" ]]; then
|
|
757
|
+
echo "::error::detect-secrets did not pass (result: ${{ needs.detect-secrets.result }}) - fail-closed (OMN-18669)"
|
|
758
|
+
exit 1
|
|
759
|
+
fi
|
|
643
760
|
migration_freeze="${{ needs.migration-freeze.result }}"
|
|
644
761
|
lint="${{ needs.lint.result }}"
|
|
645
762
|
pyright="${{ needs.pyright.result }}"
|
|
@@ -36,6 +36,10 @@ on:
|
|
|
36
36
|
branches: [main, dev]
|
|
37
37
|
merge_group:
|
|
38
38
|
|
|
39
|
+
concurrency:
|
|
40
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
41
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
42
|
+
|
|
39
43
|
permissions:
|
|
40
44
|
contents: read
|
|
41
45
|
|
|
@@ -9,6 +9,10 @@ on:
|
|
|
9
9
|
branches: [main, 'hotfix/**']
|
|
10
10
|
merge_group:
|
|
11
11
|
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
14
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
15
|
+
|
|
12
16
|
jobs:
|
|
13
17
|
call:
|
|
14
18
|
uses: OmniNode-ai/omnibase_core/.github/workflows/validate-docs.yml@main
|
|
@@ -35,8 +35,12 @@ on:
|
|
|
35
35
|
pull_request:
|
|
36
36
|
branches: [dev]
|
|
37
37
|
|
|
38
|
+
concurrency:
|
|
39
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
40
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
41
|
+
|
|
38
42
|
jobs:
|
|
39
43
|
kb-doc-gate:
|
|
40
|
-
uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@
|
|
44
|
+
uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
|
|
41
45
|
with:
|
|
42
46
|
mode: strict
|
|
@@ -12,6 +12,10 @@ on:
|
|
|
12
12
|
pull_request:
|
|
13
13
|
types: [opened, edited, synchronize]
|
|
14
14
|
|
|
15
|
+
concurrency:
|
|
16
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
17
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
18
|
+
|
|
15
19
|
jobs:
|
|
16
20
|
main-target-guard:
|
|
17
21
|
name: main-target-guard
|
{omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/omni-standards-compliance.yml
RENAMED
|
@@ -11,6 +11,10 @@ on:
|
|
|
11
11
|
merge_group:
|
|
12
12
|
workflow_dispatch:
|
|
13
13
|
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
16
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
17
|
+
|
|
14
18
|
env:
|
|
15
19
|
PYTHON_VERSION: "3.12"
|
|
16
20
|
UV_VERSION: "0.8.3"
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
#
|
|
5
|
+
# PYPI DEPENDENCY-PIN RESOLVABILITY, BEFORE MERGE. OMN-19655.
|
|
6
|
+
#
|
|
7
|
+
# WHY THIS EXISTS
|
|
8
|
+
# The release workflow already refuses to publish a wheel whose declared
|
|
9
|
+
# dependencies cannot be installed from the published PyPI index
|
|
10
|
+
# (scripts/ci/verify_pypi_pin_resolvability.py, OMN-14070 / OMN-18034). That
|
|
11
|
+
# step runs AFTER the merge, so it detects and never enforces (CLAUDE.md rule
|
|
12
|
+
# 5). Twice in two days a pull request raised omnimarket's omnibase-core floor
|
|
13
|
+
# to a version no published omnibase-infra pinned (omnimarket#2819 on
|
|
14
|
+
# 2026-09-24, omnimarket#2896 on 2026-09-25), merged green, and then failed
|
|
15
|
+
# every release on merge until an upstream release caught up.
|
|
16
|
+
#
|
|
17
|
+
# This job runs the SAME script on the pull request's own wheel, so the
|
|
18
|
+
# verdict before merge is the verdict the release job would reach after it.
|
|
19
|
+
# There is one implementation; this file is only a caller.
|
|
20
|
+
#
|
|
21
|
+
# WHEN IT JUDGES
|
|
22
|
+
# On a pull request it judges when the change touches pyproject.toml, uv.lock,
|
|
23
|
+
# the script or this file, and reports "not applicable" (success) otherwise:
|
|
24
|
+
# a change that moves no declared dependency cannot change what resolves. The
|
|
25
|
+
# nightly schedule judges dev unconditionally, because the index moves under
|
|
26
|
+
# an unchanged pyproject.toml (a yank, or a sibling's new exact pin).
|
|
27
|
+
#
|
|
28
|
+
# NO `paths:` FILTER AND NO JOB-LEVEL `if:`, deliberately, so this context is
|
|
29
|
+
# minted on every pull request and can be made required without wedging the
|
|
30
|
+
# pull requests it does not apply to.
|
|
31
|
+
|
|
32
|
+
name: PyPI Pin Resolvability
|
|
33
|
+
|
|
34
|
+
on:
|
|
35
|
+
pull_request:
|
|
36
|
+
merge_group:
|
|
37
|
+
schedule:
|
|
38
|
+
# 06:23 UTC daily, off the hour and before the 07:11 release train.
|
|
39
|
+
- cron: "23 6 * * *"
|
|
40
|
+
workflow_dispatch:
|
|
41
|
+
|
|
42
|
+
concurrency:
|
|
43
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
44
|
+
cancel-in-progress: true
|
|
45
|
+
|
|
46
|
+
permissions:
|
|
47
|
+
contents: read
|
|
48
|
+
|
|
49
|
+
jobs:
|
|
50
|
+
pin-resolvability:
|
|
51
|
+
name: pypi-pin-resolvability
|
|
52
|
+
# OMNI_RUNNER_SELECTOR_V1 - trusted CI defaults to self-hosted omnibase-ci;
|
|
53
|
+
# public forks default to ubuntu-latest. The untrusted test is the FORK
|
|
54
|
+
# test and only the fork test (OMN-18205). Read live from the routing
|
|
55
|
+
# seam; this workflow never writes a routing variable.
|
|
56
|
+
runs-on: >-
|
|
57
|
+
${{
|
|
58
|
+
(github.event_name == 'pull_request' &&
|
|
59
|
+
github.event.pull_request.head.repo.full_name != github.repository)
|
|
60
|
+
&& fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
|
|
61
|
+
|| fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
|
|
62
|
+
}}
|
|
63
|
+
timeout-minutes: 30
|
|
64
|
+
steps:
|
|
65
|
+
- name: Checkout
|
|
66
|
+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
67
|
+
with:
|
|
68
|
+
# The pull_request checkout is the synthetic merge commit; its first
|
|
69
|
+
# parent is the base branch tip, so HEAD^1..HEAD is exactly the change
|
|
70
|
+
# this pull request makes to the base as it stands now.
|
|
71
|
+
fetch-depth: 2
|
|
72
|
+
persist-credentials: false
|
|
73
|
+
|
|
74
|
+
- name: Decide whether the declared dependencies can have changed
|
|
75
|
+
id: scope
|
|
76
|
+
env:
|
|
77
|
+
EVENT_NAME: ${{ github.event_name }}
|
|
78
|
+
run: |
|
|
79
|
+
set -euo pipefail
|
|
80
|
+
if [ "${EVENT_NAME}" != "pull_request" ]; then
|
|
81
|
+
echo "applies=true" >>"${GITHUB_OUTPUT}"
|
|
82
|
+
echo "event ${EVENT_NAME}: judging unconditionally"
|
|
83
|
+
exit 0
|
|
84
|
+
fi
|
|
85
|
+
changed=$(git diff --name-only HEAD^1 HEAD)
|
|
86
|
+
printf 'changed files:\n%s\n' "${changed}"
|
|
87
|
+
if printf '%s\n' "${changed}" | grep -Eq \
|
|
88
|
+
'^(pyproject\.toml|uv\.lock|scripts/ci/verify_pypi_pin_resolvability\.py|\.github/workflows/pin-resolvability-gate\.yml)$'; then
|
|
89
|
+
echo "applies=true" >>"${GITHUB_OUTPUT}"
|
|
90
|
+
else
|
|
91
|
+
echo "applies=false" >>"${GITHUB_OUTPUT}"
|
|
92
|
+
echo "::notice title=PyPI pin resolvability::not applicable: this change touches no declared dependency"
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
- name: Install uv
|
|
96
|
+
if: steps.scope.outputs.applies == 'true'
|
|
97
|
+
uses: astral-sh/setup-uv@v7
|
|
98
|
+
with:
|
|
99
|
+
python-version: '3.12'
|
|
100
|
+
|
|
101
|
+
- name: Build the wheel this change would release
|
|
102
|
+
if: steps.scope.outputs.applies == 'true'
|
|
103
|
+
run: uv build --wheel --out-dir "${RUNNER_TEMP}/pin-resolvability-dist"
|
|
104
|
+
|
|
105
|
+
- name: Verify PyPI dependency-pin resolvability (OMN-14070, OMN-19655)
|
|
106
|
+
if: steps.scope.outputs.applies == 'true'
|
|
107
|
+
env:
|
|
108
|
+
# Same budget the release job's step uses (OMN-16047): a timeout is a
|
|
109
|
+
# throughput fault, reported as such, never as a broken pin.
|
|
110
|
+
PYPI_PIN_RESOLVE_TIMEOUT_SECONDS: '900'
|
|
111
|
+
run: python3 scripts/ci/verify_pypi_pin_resolvability.py "${RUNNER_TEMP}/pin-resolvability-dist"
|
|
@@ -10,6 +10,10 @@ on:
|
|
|
10
10
|
merge_group:
|
|
11
11
|
types: [checks_requested]
|
|
12
12
|
|
|
13
|
+
concurrency:
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
15
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
16
|
+
|
|
13
17
|
jobs:
|
|
14
18
|
pr-title:
|
|
15
19
|
if: github.event_name == 'pull_request'
|
|
@@ -9,6 +9,10 @@ on:
|
|
|
9
9
|
branches: [main, 'hotfix/**']
|
|
10
10
|
merge_group:
|
|
11
11
|
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
14
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
15
|
+
|
|
12
16
|
jobs:
|
|
13
17
|
pre-commit:
|
|
14
18
|
runs-on: ubuntu-latest
|
|
@@ -34,9 +34,13 @@ on:
|
|
|
34
34
|
pull_request:
|
|
35
35
|
branches: [dev]
|
|
36
36
|
|
|
37
|
+
concurrency:
|
|
38
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
39
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
40
|
+
|
|
37
41
|
jobs:
|
|
38
42
|
public-repo-hygiene:
|
|
39
|
-
uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@
|
|
43
|
+
uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
|
|
40
44
|
with:
|
|
41
45
|
mode: report
|
|
42
46
|
secrets: inherit
|
|
@@ -92,6 +92,24 @@ jobs:
|
|
|
92
92
|
exit 1
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
- name: Verify PyPI dependency-pin resolvability (OMN-14070, OMN-19655)
|
|
96
|
+
# This repository published to PyPI with no resolvability check at all
|
|
97
|
+
# until OMN-19655, while its four publishing siblings refused a wheel
|
|
98
|
+
# whose declared dependencies cannot be installed from the published
|
|
99
|
+
# index (omnimarket 0.4.6 pinned a nonexistent omnibase-compat, OMN-14064;
|
|
100
|
+
# omnimarket 0.4.21-0.4.24 needed an omnibase-core no published
|
|
101
|
+
# omnibase-infra allowed, OMN-18034). The script is vendored
|
|
102
|
+
# byte-for-byte from omnibase_infra and is the same one
|
|
103
|
+
# pin-resolvability-gate.yml runs before merge, so the pre-merge and
|
|
104
|
+
# release verdicts are one implementation. It installs the built wheel
|
|
105
|
+
# with `uv pip install` into a bare scratch venv, where
|
|
106
|
+
# [tool.uv.sources] is unreachable, so a broken pin fails here, before
|
|
107
|
+
# `uv publish` runs. A timeout is reported as a throughput fault, never
|
|
108
|
+
# as a broken pin (OMN-16047).
|
|
109
|
+
env:
|
|
110
|
+
PYPI_PIN_RESOLVE_TIMEOUT_SECONDS: '900'
|
|
111
|
+
run: python3 scripts/ci/verify_pypi_pin_resolvability.py dist/
|
|
112
|
+
|
|
95
113
|
- name: Publish to PyPI
|
|
96
114
|
run: |
|
|
97
115
|
uv publish --token "$UV_PUBLISH_TOKEN" dist/*.whl dist/*.tar.gz
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2026 OmniNode.ai Inc.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
# Secrets Baseline Wiring Gate — thin caller. OMN-18669.
|
|
5
|
+
#
|
|
6
|
+
# This repository carries `.secrets.baseline`. That file is the allowlist a
|
|
7
|
+
# detect-secrets scan is judged against, and on its own it is inert: it blocks
|
|
8
|
+
# nothing, it proves nothing, and it looks exactly like a repository that is
|
|
9
|
+
# protected. Measured 2026-09-18 across the registry, one repo carried a
|
|
10
|
+
# baseline no hook and no workflow read; a full scan against it surfaced 47
|
|
11
|
+
# findings in 18 files nothing had ever been asked to approve.
|
|
12
|
+
#
|
|
13
|
+
# So this gate refuses the silent state: a repo carrying the baseline owes BOTH
|
|
14
|
+
# a pre-commit entry and a CI workflow that read it, and neither substitutes for
|
|
15
|
+
# the other. A repo with no baseline passes — the gate never demands one.
|
|
16
|
+
#
|
|
17
|
+
# Validator + reusable workflow live in omniclaude, pinned by immutable SHA and
|
|
18
|
+
# never @main: omniclaude's main is release-synced and does not carry either.
|
|
19
|
+
# The pin is a SINGLE source of truth — the reusable checks its validator out at
|
|
20
|
+
# github.job_workflow_sha, i.e. this very SHA — so advancing the gate is one
|
|
21
|
+
# line here, plus the matching `rev:` in .pre-commit-config.yaml, in one PR.
|
|
22
|
+
#
|
|
23
|
+
# Surfaced context: 'secrets-baseline-wiring / secrets-baseline-wiring' (this
|
|
24
|
+
# job's id / the reusable job's name). Removing this file removes the CI half
|
|
25
|
+
# and the local hook then fails the repo on its own next commit.
|
|
26
|
+
|
|
27
|
+
name: Secrets Baseline Wiring Gate
|
|
28
|
+
|
|
29
|
+
on:
|
|
30
|
+
pull_request:
|
|
31
|
+
branches: [dev]
|
|
32
|
+
|
|
33
|
+
concurrency:
|
|
34
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
35
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
36
|
+
|
|
37
|
+
jobs:
|
|
38
|
+
secrets-baseline-wiring:
|
|
39
|
+
uses: OmniNode-ai/omniclaude/.github/workflows/secrets-baseline-wiring-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
|
|
@@ -17,6 +17,10 @@ on:
|
|
|
17
17
|
# Run weekly on Monday at 06:00 UTC
|
|
18
18
|
- cron: "0 6 * * 1"
|
|
19
19
|
|
|
20
|
+
concurrency:
|
|
21
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
22
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
23
|
+
|
|
20
24
|
jobs:
|
|
21
25
|
codeql:
|
|
22
26
|
name: CodeQL
|
|
@@ -22,6 +22,10 @@ on:
|
|
|
22
22
|
branches: [main, dev]
|
|
23
23
|
merge_group:
|
|
24
24
|
|
|
25
|
+
concurrency:
|
|
26
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
27
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
28
|
+
|
|
25
29
|
jobs:
|
|
26
30
|
stale-todo-gate:
|
|
27
31
|
name: Stale TODO Gate
|
|
@@ -29,6 +29,10 @@ on:
|
|
|
29
29
|
branches: [main, dev]
|
|
30
30
|
merge_group:
|
|
31
31
|
|
|
32
|
+
concurrency:
|
|
33
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
34
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
35
|
+
|
|
32
36
|
permissions:
|
|
33
37
|
contents: read
|
|
34
38
|
|
|
@@ -12,6 +12,10 @@ on:
|
|
|
12
12
|
merge_group:
|
|
13
13
|
workflow_dispatch:
|
|
14
14
|
|
|
15
|
+
concurrency:
|
|
16
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
17
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
18
|
+
|
|
15
19
|
jobs:
|
|
16
20
|
validate-validator-requirements:
|
|
17
21
|
name: Enforce validator-requirements.yaml (OMN-13291)
|