Carl Niklas Rydberg
abf5b5d5f2
Added the hash_id == 0 guard in the codec and documented the FS store digest length constraint in the README.
2025-12-21 23:54:42 +01:00
Carl Niklas Rydberg
88cde5c243
Added the explicit hash_id == 0 guard in the codec. This rejects reserved 0x0000 in both encode and decode paths
2025-12-21 23:48:45 +01:00
Carl Niklas Rydberg
ab36856833
Updated the ReferenceBytes codec to be spec‑true: it now treats the digest as “remaining bytes” and only enforces digest length when the registry provides a non‑zero expected length. This keeps strictness where hashing/verification happens while allowing unknown hash IDs for pure transport/framing. Changes are in asl1_core_codec.c.
2025-12-21 23:46:07 +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
5443ad041c
Enforced StoreConfig at the wrapper boundary by validating the configured encoding/hash and rejecting mismatched hash IDs before delegating to backend ops. This makes the amduat_asl_store_t wrapper actively use/validate its config instead of just storing it.
2025-12-21 23:09:44 +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
8e26d11e3b
Fixed the test include so AMDUAT_ENC_ASL1_CORE_V1 is visible. Re-run:
...
cmake --build build --target amduat_test_asl_ref_derive && ./build/amduat_test_asl_ref_derive
2025-12-21 22:39:11 +01:00
Carl Niklas Rydberg
0188e10cee
Add ASL ref-derive test and use central derivation
2025-12-21 22:36:08 +01:00
Carl Niklas Rydberg
5a002b2a1d
Added a safety check in amduat_octets_eq so it rejects invalid octet views (len>0 with NULL data) before comparing.
2025-12-21 22:23:12 +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
71d2303c3c
Moved EncodingProfileId into ASL core and decoupled the encoder header from STORE, so ASL/1-CORE stands alone as required.
2025-12-21 22:12:09 +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
e391e55150
Added snapshot consistency guidance in the spec and clarified the intended use of snapshot views vs. direct store calls in the public header.
2025-12-21 21:54:29 +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
d3224b26ac
Added targeted ingest/remove + epoch tests in test_tgk_store_mem.c
...
Added the FS ingest/remove + epoch test in test_tgk_store_fs.c and fixed the missing ref_edge initialization
2025-12-21 21:23: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
12e2a91ca7
Added the snapshot/epoch type and getter in the public API, plus the store wrapper implementation:
2025-12-21 21:09:01 +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
ea57e79c41
Added a short cursor‑format note in store.h documenting that the in‑memory adapter uses ReferenceBytes (hash_id + digest) of the last edge_ref as the scan_edges page token.
2025-12-21 20:44:48 +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
eedbe65957
Added three tests in test_tgk_store_mem.c
2025-12-21 20:24:34 +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
8f3282bbce
Updated TGK/PROV to no longer hard‑require neighbors
2025-12-21 20:16:46 +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
257280934f
Add TGK provenance operators and tests
2025-12-21 18:41:32 +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
d7ac826407
Add PEL queue with head tracking and tests
2025-12-21 08:05:59 +01:00
Carl Niklas Rydberg
1c5bae927e
Add TGK core edge types and TGK1 edge encoding/tests
2025-12-21 00:41:44 +01:00
Carl Niklas Rydberg
d9e66ea60c
Updated the --ref-format bytes usage note to accurately describe REF arguments in amduat_pel_cli.c.
2025-12-20 21:37:19 +01:00
Carl Niklas Rydberg
e562bfc63f
Fix CLI link deps after format refactor
2025-12-20 21:26:57 +01:00
Carl Niklas Rydberg
bdbe9cd6fc
Extract shared IO/parse/decode/run utilities
...
add artifact/ref IO, format parse, opreg formatting, PEL decode/run modules
refactor PEL/ASL CLIs and pel_run/seed to use shared helpers
update build to include new sources and headers
2025-12-20 21:03:31 +01:00
Carl Niklas Rydberg
74eed45a5a
Extract PEL CLI formatting/helpers into amduat_format library
2025-12-20 19:12:51 +01:00
Carl Niklas Rydberg
790c540594
Add amduat-pel CLI with PEL/PROGRAM-DAG tooling
2025-12-20 18:26:52 +01:00
Carl Niklas Rydberg
441b0191e8
Add PEL seed/run tools and quickstart README
2025-12-20 17:23:37 +01:00
Carl Niklas Rydberg
a7ff4ec25a
Implement PEL/1-SURF run with trace artifacts and stub store test
2025-12-20 15:16:07 +01:00
Carl Niklas Rydberg
a6425067bf
Add PEL program DAG validation and kernel op execution
2025-12-20 14:27:26 +01:00
Carl Niklas Rydberg
585844a6fc
Implement PEL encodings and tests
2025-12-20 13:54:18 +01:00
Carl Niklas Rydberg
96bf3f08b3
Register PEL encodings and SchemeRef digest
2025-12-20 12:54:32 +01:00
Carl Niklas Rydberg
4dae7a32d2
Add PEL tier1 specifications
2025-12-20 12:35:10 +01:00
Carl Niklas Rydberg
f69742dc0b
Define TGK edge tag and registry entry
2025-12-20 12:30:53 +01:00
Carl Niklas Rydberg
47e3ccc382
Adding TGK specifications.
2025-12-20 11:32:17 +01:00
Carl Niklas Rydberg
1e88925ece
Fix CLI link order for ASL parsing
2025-12-20 11:28:42 +01:00
Carl Niklas Rydberg
2a0fd994e5
Share ASL store-id validation
2025-12-20 11:21:07 +01:00