Commit graph

27 commits

Author SHA1 Message Date
Carl Niklas Rydberg 347d2e4dda Add filesystem-backed ASL index store 2026-01-17 14:08:41 +01:00
Carl Niklas Rydberg a91ab91e39 Add indexed ASL store ops and tests 2026-01-17 12:44:33 +01:00
Carl Niklas Rydberg d0005e54c3 Fix TGK store conflict error mapping and add regression test 2025-12-22 11:50:00 +01:00
Carl Niklas Rydberg 222fe2f84e tgk1-edge: accept unknown hash ids and add regression test 2025-12-22 11:42:41 +01:00
Carl Niklas Rydberg 9754582ae7 Implement store error IO class, optional config validation, and ops init helper 2025-12-21 23:29:24 +01:00
Carl Niklas Rydberg a992e89766 Made StoreConfig enforcement pluggable at the amduat_asl_store_t boundary by adding a validate_config hook to store ops. validate_config is now optional, get rejects refs whose hash_id doesn’t match the store config, and put verifies the returned Reference matches the configured hash_id. This uses the StoreConfig at the boundary without forcing every store to implement the hook. 2025-12-21 23:18:12 +01:00
Carl Niklas Rydberg 3dda32b62c Adjusted malformed reference handling so a digest length mismatch (or missing digest data) returns AMDUAT_ASL_STORE_ERR_INTEGRITY instead of AMDUAT_ASL_STORE_ERR_UNSUPPORTED in asl_store_fs.c 2025-12-21 23:00:45 +01:00
Carl Niklas Rydberg 24ad51ff46 Added AMDUAT_ASL_STORE_ERR_IO and used it in the FS store path so I/O/internal failures no longer surface as integrity errors; updated CLI/error mappings so the new error is visible and gets the IO exit code. This keeps integrity reserved for actual content/hash/collision issues while still preserving existing semantics for not-found/unsupported. 2025-12-21 22:59:31 +01:00
Carl Niklas Rydberg fe9acea94b Updated amduat_asl_store_fs_put_impl so fsync failure cleanup only unlinks when this call actually created the object, preventing deletion of pre-existing mappings. Change is in asl_store_fs.c. 2025-12-21 22:49:24 +01:00
Carl Niklas Rydberg 39712f7b70 Added a central ASL reference-derivation API and wired the filesystem store (plus the PEL stub store) to use it, so all reference creation now goes through the canonical encode+hash path. 2025-12-21 22:22:17 +01:00
Carl Niklas Rydberg dd429ed6f1 Implemented immutable ownership helpers for core ASL values and routed internal clone/free paths through them so stored artifacts/references are deep-copied and no longer depend on caller-owned buffers. 2025-12-21 22:09:58 +01:00
Carl Niklas Rydberg a945a117f6 Added a read‑only snapshot view API so callers can pin queries to a single immutable snapshot; mem/fs adapters now return a snapshot store backed by a cloned mem state, and tests verify snapshot stability across mutations. 2025-12-21 21:52:06 +01:00
Carl Niklas Rydberg f83dc9c2bd Implemented batch ingest API and tests 2025-12-21 21:31:55 +01:00
Carl Niklas Rydberg 8bbadd602c Added ingest/remove APIs and wired epoch bumps on mutation, plus made the mem store truly mutable/owning 2025-12-21 21:20:12 +01:00
Carl Niklas Rydberg 456e899b50 Added the snapshot/epoch type and getter in the public API, plus the store wrapper implementation: 2025-12-21 21:11:36 +01:00
Carl Niklas Rydberg 9be82c64be TGK: harden store adapters and cleanup gaps
Enforce strict type filter matching for NULL lists
FS store skips missing manifest refs to align with error model
Drop empty tgk1_edge stack stub
2025-12-21 20:53:44 +01:00
Carl Niklas Rydberg 47504644f7 Added identity-domain validation and duplicate EdgeRef handling to the FS adapter, plus new FS tests 2025-12-21 20:42:20 +01:00
Carl Niklas Rydberg 070265085f Implemented order‑key pagination for scan_edges in the in‑memory TGK store. The cursor is now the canonical ReferenceBytes of the last edge in the page, and results honor the same (hash_id, digest) ordering. Default page size is 256 edges. Invalid or unsupported tokens now fail the call. Changes are in tgk_store_mem.c
Added a pagination test that walks multiple scan_edges pages and validates full coverage + ordering
2025-12-21 20:36:19 +01:00
Carl Niklas Rydberg c298481025 Implemented identity-domain validation and duplicate EdgeRef detection in the in‑memory TGK store 2025-12-21 20:21:34 +01:00
Carl Niklas Rydberg d7b456654b Fix TGK mem multi-encoding handling 2025-12-21 19:46:56 +01:00
Carl Niklas Rydberg 05baf8e847 Add tgk store fs adapter and tests 2025-12-21 19:23:41 +01:00
Carl Niklas Rydberg 8b2a5f830a Implement TGK store API and in-memory adapter with tests 2025-12-21 08:44:04 +01:00
Carl Niklas Rydberg 2a0fd994e5 Share ASL store-id validation 2025-12-20 11:21:07 +01:00
Carl Niklas Rydberg c6f9c6a696 Add ASL FS metadata and layout helper 2025-12-20 07:54:23 +01:00
Carl Niklas Rydberg b32c164313 Add ASL/1 core codec and refactor fs store to use it 2025-12-19 23:55:27 +01:00
Carl Niklas Rydberg 15b36b1f1d Implement ASL store FS adapter and ENC/ASL1-CORE registry 2025-12-19 23:16:38 +01:00
Carl Niklas Rydberg b47b914224 Scaffold C layout and ASL registry model 2025-12-19 19:22:40 +01:00