Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
c846c50
feat(models): add ModelContractPatch and patch validation system (OMN…
jonahgabriel Dec 30, 2025
d53ca60
feat(contracts): enhance patch validation and add helper methods (OMN…
jonahgabriel Dec 30, 2025
6e56442
refactor(models): rename ModelHandlerDescriptor to ModelHandlerBehavi…
jonahgabriel Dec 30, 2025
db991d5
chore(validation): add ContractPatchValidator to naming exemptions (O…
jonahgabriel Dec 30, 2025
59244d5
fix(contracts): address PR review feedback for patch validation (OMN-…
jonahgabriel Dec 30, 2025
ae7ea0b
feat(contracts): add Handler Contract Model & YAML Schema (OMN-1117)
Dec 30, 2025
3790c0f
Merge origin/main into jonah/omn-1117-handler-contract-model-yaml-schema
Dec 30, 2025
4faceda
fix(contracts): address PR #289 review feedback (OMN-1126)
jonahgabriel Dec 30, 2025
4e5f2f2
fix(contracts): address PR review feedback and CI formatting
Dec 30, 2025
310bf15
fix(tests): address PR review feedback and CI linting issues
Dec 30, 2025
dadf401
Merge branch 'main' into jonah/omn-1126-modelcontractpatch-patch-vali…
jonahgabriel Dec 30, 2025
7c29714
fix(contracts): address PR #292 review feedback and suggested improve…
Dec 30, 2025
1064bc7
fix(contracts): address final PR #292 review feedback
Dec 30, 2025
25757cd
feat(manifest): add execution manifest generation for pipeline observ…
Dec 30, 2025
b045a33
fix(contracts): add missing contract_version and node_type to handler…
Dec 30, 2025
b97c19a
fix(contracts): fix CI failure and address remaining PR #289 feedback…
jonahgabriel Dec 30, 2025
69f6403
fix(mixins): remove backwards compatibility and extract ProtocolFromE…
Dec 30, 2025
ca7e323
fix(contracts): remove node_type and contract_version from handler ex…
Dec 30, 2025
4a7c9f2
fix(contracts): address all PR #289 feedback for release readiness (O…
jonahgabriel Dec 30, 2025
15a4d51
fix(manifest): address PR review feedback for manifest generation
Dec 30, 2025
28b4549
fix(contracts): replace deprecated datetime.utcnow() with datetime.no…
Dec 31, 2025
002a190
fix(manifest): address additional PR review feedback
Dec 31, 2025
69320e3
fix(contracts): address final PR #289 nitpicks and polish for release…
jonahgabriel Dec 31, 2025
f886793
fix(manifest): address PR review feedback for release readiness
Dec 31, 2025
f8ee9e3
fix(contracts): fix CI failures and address remaining PR #289 feedbac…
jonahgabriel Dec 31, 2025
ae25279
fix(validation): distinguish handler contracts from ONEX metadata con…
Dec 31, 2025
1ec1a7f
fix(manifest): address final PR review items for release readiness
Dec 31, 2025
a4e71da
fix(validation): add handler contract validation to validate-contract…
Dec 31, 2025
39e97db
Merge branch 'main' into jonah/omn-1113-beta-manifest-generation-obse…
Dec 31, 2025
52b728a
fix(contracts): fix CI test failures and final PR #289 polish (OMN-1126)
jonahgabriel Dec 31, 2025
3476b30
fix(manifest): address all PR review feedback and pre-commit violations
Dec 31, 2025
1372f98
fix(manifest): address PR review feedback and fix CI mypy errors
Dec 31, 2025
5a86ae2
fix(manifest): address PR #294 review feedback
Dec 31, 2025
bf7c3e8
feat(models): add ModelProjectorContract and schema models (OMN-1166)
Jan 1, 2026
204f3ce
refactor(contracts): DRY up duplicate detection in ContractPatchValid…
jonahgabriel Jan 1, 2026
3de833a
Merge branch 'jonah/omn-1126-modelcontractpatch-patch-validation' int…
jonahgabriel Jan 1, 2026
648bf2b
Merge branch 'jonah/omn-1166-modelprojectorcontract-schema-models' in…
Jan 1, 2026
d2ed3f1
Merge branch 'jonah/omn-1113-beta-manifest-generation-observability' …
jonahgabriel Jan 1, 2026
290434c
docs(contracts): add handler contract guide with ID prefix convention
Jan 1, 2026
2ecab63
Merge branch 1113 (restructured models) into 1117
Jan 1, 2026
7a0bbfe
feat(capabilities): add version_range field with semver validation
Jan 1, 2026
789a37f
Merge main into 1117, resolve conflicts
Jan 1, 2026
fdc0c67
fix(models): address PR #292 review feedback
Jan 1, 2026
833c607
refactor!: remove ModelHandlerBehaviorDescriptor backwards compatibility
Jan 1, 2026
767add3
chore: minor code quality improvements from PR review
Jan 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ sdist/
wheels/
*.egg-info/
*.egg
MANIFEST
/MANIFEST

# Legacy packaging formats
.Python
Expand Down
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### ⚠️ BREAKING CHANGES

#### ModelHandlerBehaviorDescriptor Renamed to ModelHandlerBehavior [OMN-1117]

The `ModelHandlerBehaviorDescriptor` class has been renamed to `ModelHandlerBehavior`. The backwards compatibility shim (`model_handler_behavior_descriptor.py`) and alias have been **removed**.

**Impact**:
- Code importing `ModelHandlerBehaviorDescriptor` will raise `ImportError`
- Code importing from `model_handler_behavior_descriptor` will raise `ImportError`

**Migration Guide**:

```python
# Before (v0.3.x)
from omnibase_core.models.runtime.model_handler_behavior_descriptor import (
ModelHandlerBehaviorDescriptor,
)
contract = ModelHandlerContract(
descriptor=ModelHandlerBehaviorDescriptor(handler_kind="compute", ...),
...
)

# After (v0.4.0+)
from omnibase_core.models.runtime.model_handler_behavior import (
ModelHandlerBehavior,
)
contract = ModelHandlerContract(
descriptor=ModelHandlerBehavior(handler_kind="compute", ...),
...
)
```

**Quick Migration**:
```bash
# Find affected imports
grep -rn "ModelHandlerBehaviorDescriptor\|model_handler_behavior_descriptor" --include="*.py"

# Replace in files (Linux/macOS)
find . -name "*.py" -exec sed -i 's/ModelHandlerBehaviorDescriptor/ModelHandlerBehavior/g' {} \;
find . -name "*.py" -exec sed -i 's/model_handler_behavior_descriptor/model_handler_behavior/g' {} \;
```

#### Hook Typing Enforcement Enabled by Default [OMN-1157]

The default value of `BuilderExecutionPlan.enforce_hook_typing` has been changed from `False` to `True`. This is a **fail-fast behavior change** that affects code building execution plans with typed hooks.
Expand Down
3 changes: 3 additions & 0 deletions docs/INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ omnibase_core/docs/
| [Documentation Architecture](architecture/DOCUMENTATION_ARCHITECTURE.md) | Documentation structure and organization | ✅ Complete |
| [Subcontract Architecture](architecture/SUBCONTRACT_ARCHITECTURE.md) | Contract system design and subcontract patterns | ✅ Complete |
| [Mixin Architecture](architecture/MIXIN_ARCHITECTURE.md) | Mixin system design and patterns | ✅ Complete |
| [**Mixins to Handlers Refactor**](architecture/MIXINS_TO_HANDLERS_REFACTOR.md) | Handler-based architecture, manifest spec, replay invariants ⭐ **BETA** | ✅ Draft |
| [Protocol Architecture](architecture/PROTOCOL_ARCHITECTURE.md) | Protocol design and compliance | ✅ Complete |
| [Effect Timeout Behavior](architecture/EFFECT_TIMEOUT_BEHAVIOR.md) | Timeout check points and retry behavior | ✅ Complete |
| [Ecosystem Directory Structure](architecture/ECOSYSTEM_DIRECTORY_STRUCTURE.md) | Repository organization and patterns across ONEX ecosystem | ✅ Available |
Expand Down Expand Up @@ -287,6 +288,7 @@ def serialize_error(error: ModelOnexError) -> TypedDictValidationErrorSerialized
| Document | Description | Status |
|----------|-------------|--------|
| [**Subcontract Architecture**](architecture/SUBCONTRACT_ARCHITECTURE.md) | Contract system design | ✅ Excellent |
| [**Handler Contract Guide**](contracts/HANDLER_CONTRACT_GUIDE.md) | Handler contract authoring, ID prefix convention | ✅ Complete |
| [Approved Union Patterns](patterns/APPROVED_UNION_PATTERNS.md) | Type union patterns | ✅ Available |

### Project Documentation
Expand Down Expand Up @@ -322,6 +324,7 @@ def serialize_error(error: ModelOnexError) -> TypedDictValidationErrorSerialized
| **Fix slow performance tests** | [Performance Benchmark Thresholds](performance/PERFORMANCE_BENCHMARK_THRESHOLDS.md#ci-performance-degradation) |
| **Debug async hangs** | [Async Hang Debugging](troubleshooting/ASYNC_HANG_DEBUGGING.md) |
| **Understand contracts** | [Subcontract Architecture](architecture/SUBCONTRACT_ARCHITECTURE.md) |
| **Create handler contracts** | [Handler Contract Guide](contracts/HANDLER_CONTRACT_GUIDE.md) |
| **Use TypedDict for serialization** | [TypedDict Types](#typeddict-types-serialization-boundaries) - Strongly-typed serialization boundaries |
| **Validate mixin metadata** | [ModelMixinMetadata](../src/omnibase_core/models/core/model_mixin_metadata.py) - Mixin discovery & validation |
| **Validate docker-compose.yaml** | [ModelDockerComposeManifest](../src/omnibase_core/models/docker/model_docker_compose_manifest.py) - Docker validation |
Expand Down
4 changes: 2 additions & 2 deletions docs/architecture/EXECUTION_SHAPE_EXAMPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -657,7 +657,7 @@ Use **Command to Effect** when:

```python
from typing import Any
from datetime import datetime
from datetime import datetime, timezone

from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
Expand Down Expand Up @@ -761,7 +761,7 @@ async def health_check() -> HealthResponse:
status=status,
database=results["database"],
cache=results["cache"],
timestamp=datetime.utcnow().isoformat()
timestamp=datetime.now(timezone.utc).isoformat()
)


Expand Down
Loading
Loading