Commit 10b9bb5
committed
feat(contract): ContentStore — content-addressed cold text store
The content-addressed cold text/blob store for the AriGraph/OSINT episodic
arc (D-CC-ARI-3). Zero-dep typed surface in lance-graph-contract:
- ContentId(u64) = hash::fnv1a of the bytes (stable across versions — the
correct content address; DefaultHasher must never key one; 0 = sentinel).
- SourceSpan{ContentId,u32,u32} = the fixed-size Copy typed form of
template-equivalence's (source_id,start,end); is_cited() = "no source
span -> no claim".
- ContentStore (cold resolve -> Option<&[u8]> zero-copy slice) + ContentSink
(idempotent put -> dedup by content-address: many episodes -> one source).
Hot/cold firewall (ADR-022): the hot path touches only the fixed-size
ContentId/SourceSpan; bytes hydrate cold at the membrane. Nothing
variable-length enters the 512 B node.
Additive, zero-dep; +6 tests, clippy clean. Board: LATEST_STATE Contract
Inventory. Consumers: rs-graph-llm/episodic-arc-task, template-equivalence.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VGXeWN4XfVjteBVcVeuLo41 parent f7e3426 commit 10b9bb5
1 file changed
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| 123 | + | |
| 124 | + | |
123 | 125 | | |
124 | 126 | | |
125 | 127 | | |
| |||
0 commit comments