Phase 1 delivers the complete durability and storage layer:
- WAL with crash recovery: Append-only journal with BLAKE3 checksums,
fsync guarantees, and proper seek-to-EOF on reopen
- Storage engine: sled-backed KVStore with scan_prefix for range queries
- Content-addressed storage: H:{hash}, V:{hash}, E:{hash} key patterns
- Ingestor: Background worker tailing WAL, writing to KV with 8-byte
aligned record headers for rkyv zero-copy deserialization
- Comprehensive tests: 31 tests covering crash recovery, round-trips,
and multi-cycle durability
New crates: stemedb-wal, stemedb-storage, stemedb-ingest
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
sequenceDiagram
|
|
%% The Correct Path: With Lifecycle Filtering
|
|
|
|
participant RA as Research Agent
|
|
participant E as Episteme
|
|
participant LO as Lead Orchestrator
|
|
participant IA as Implementation Agent
|
|
participant DA as Deploy Agent
|
|
participant P as Production
|
|
|
|
RA->>E: Store RFC finding
|
|
Note right of E: Same RFC. Still stored as PROPOSED.
|
|
|
|
LO->>E: What's the APPROVED JWT algorithm?
|
|
Note right of E: ✓ Lifecycle filter: approved only.
|
|
|
|
E-->>LO: RS256 (conf: 0.92)
|
|
Note right of LO: ✓ Returns the approved decision. Proposal excluded.
|
|
|
|
LO->>IA: Use RS256 for JWT
|
|
Note right of IA: ✓ Correct algorithm propagates.
|
|
|
|
IA->>E: Pre-flight constraint check
|
|
Note right of E: ✓ Check for forbidden patterns before coding.
|
|
|
|
E-->>IA: No violations
|
|
Note right of IA: ✓ No negative constraints for RS256.
|
|
|
|
IA->>DA: Config ready
|
|
Note right of DA: ✓ Code written against RS256.
|
|
|
|
DA->>P: Deploy JWT config
|
|
Note right of P: ✓ Deployed. Matches production expectation.
|
|
|
|
P->>P: 200 OK
|
|
Note over P: ✓ Auth works. No pager. Sleep continues.
|