feat(acms): design and implement ACMS index data model with file metadata, tags, and tier assignment #10788

Open
HAL9000 wants to merge 4 commits from feat/acms-index-data-model into master

4 Commits

Author SHA1 Message Date
HAL9000 0f15c91a9b fix(acms): resolve rebase conflicts, remove duplicate step and fix pyright annotation
CI / lint (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 1m12s
CI / build (pull_request) Successful in 38s
CI / push-validation (pull_request) Successful in 41s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m13s
CI / helm (pull_request) Successful in 53s
CI / unit_tests (pull_request) Failing after 7m14s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 10m8s
CI / status-check (pull_request) Failing after 3s
2026-06-06 11:39:49 -04:00
HAL9000 632812869a fix(acms): add missing step definitions for singular result and entries count in traversal tests
Add three missing Behave step definitions to acms_index_data_model_traversal_steps.py:
- "I should get {count:d} result" (singular form, used in tier-level query scenario)
- "I should get {count:d} entries" (used in get-all-entries scenario)
2026-06-06 11:39:49 -04:00
HAL9000 516a106f38 fix(acms): fix BDD test table headers, missing steps, and code formatting
- Add missing | key | value | header to index entry creation table
- Add missing | filter | value | header to combined query filters table
- Fix file type step pattern to use quoted {file_type} parameter
- Add missing Given step for creating index with N entries
- Add missing When step for traversal with specific chunk size
- Apply ruff format fixes to index.py and acms_index_data_model_steps.py
2026-06-06 11:39:49 -04:00
HAL9000 a96ff9b11b feat(acms): design and implement ACMS index data model with file metadata, tags, and tier assignment
Added a new ACMS data model module and supporting artifacts:
- src/cleveragents/acms/data_model.py: implements Tier enum with hot, warm, cold; IndexEntry dataclass with fields path, size, last_accessed, created_at, tags, tier, checksum; serialization/deserialization methods (to_dict, from_dict, to_json, from_json, to_msgpack, from_msgpack); TagIndex class for O(1) tag-based lookups.
- features/acms/acms_index_data_model.feature: 32 scenarios describing expected ACMS index data model behavior.
- features/steps/acms_index_data_model_steps.py: step definitions for the feature.
- src/cleveragents/acms/__init__.py: exports for new classes (ACMSIndexEntry, TagIndex, Tier).

ISSUES CLOSED: #9970
2026-06-06 11:39:49 -04:00