chore: cleanup of history file
Some checks failed
Test Suite / unit-tests (3.11) (push) Has been cancelled
Test Suite / unit-tests (3.12) (push) Has been cancelled
Test Suite / integration-tests (push) Has been cancelled
Test Suite / e2e-tests (push) Has been cancelled
Test Suite / performance-tests (push) Has been cancelled
Test Suite / code-quality (push) Has been cancelled
Test Suite / security-scan (push) Has been cancelled
Test Suite / test-summary (push) Has been cancelled

This commit is contained in:
2026-01-05 22:01:04 +01:00
parent 5e147865f8
commit 77415bfad7
140 changed files with 73 additions and 56 deletions

View File

@@ -0,0 +1,57 @@
# Asset Model Migration Plan
## Goal
Convert from dict-based asset representation to object-based `Asset` model for better type safety and test compatibility.
## Current State
- `AssetRegistry.list_assets()` returns `List[Dict[str, Any]]`
- Tests expect `List[Asset]` with attributes like `asset.filename`
- Multiple inconsistent field names: `content_hash` vs `hash`, `size_bytes` vs `size`
## Migration Strategy
### Phase 1: Add Model Support (Non-Breaking)
1. ✅ Create `Asset` dataclass with `from_dict()` and `to_dict()` methods
2. Add `AssetRegistry.list_assets_as_objects()` method
3. Update tests to use new method
### Phase 2: Gradual Migration
1. Update `AssetManager` to return `Asset` objects
2. Update CLI commands to use object interface
3. Update analytics and discovery modules
### Phase 3: Storage Migration
1. Update registry storage format (optional - can keep dict storage)
2. Remove old methods
3. Update all remaining code
## Implementation Steps
### 1. Update AssetRegistry
```python
def list_assets_as_objects(self) -> List[Asset]:
"""List all assets as Asset objects."""
asset_dicts = self.list_assets()
return [Asset.from_dict(asset_dict) for asset_dict in asset_dicts]
```
### 2. Update AssetManager
```python
def list_assets(self) -> List[Asset]:
"""List all assets with enhanced information."""
return self.registry.list_assets_as_objects()
```
### 3. Update Tests
- Change `[asset.filename for asset in assets]` to work with objects
- Update assertions to use object attributes
## Benefits After Migration
- ✅ Type safety and IDE support
- ✅ Test compatibility
- ✅ Cleaner, more maintainable code
- ✅ Future extensibility (methods, computed properties)
## Risks
- Temporary complexity during migration
- Need to ensure backward compatibility during transition