This commit adds the read path (Cortex) to complement the write path (Spine): ## Crates - stemedb-api: HTTP API with axum + utoipa OpenAPI - /v1/assert, /v1/query, /v1/epoch, /v1/skeptic, /v1/trace, /v1/audit - Metered endpoints with quota enforcement - Ed25519 signature verification - stemedb-lens: Truth resolution lenses - RecencyLens, ConsensusLens, ConfidenceLens - VoteAwareConsensusLens (Ballot Box pattern) - TrustAwareAuthorityLens (The Hive pattern) - SkepticLens (conflict analysis) - EpochAwareLens (paradigm-safe queries) - stemedb-query: Query engine with materialized views ## Storage Extensions - VoteStore: Vote aggregation with cached counts - TrustRankStore: Agent reputation with decay - AuditStore: Query audit trail - IndexStore: SP/P/S index structures - SupersessionStore: Epoch supersession chains ## SDKs - sdk/go/steme: Go HTTP client with Ed25519 signing - sdk/go/adk: ADK-Go tools for AI agents ## Documentation - Updated CLAUDE.md, architecture.md, roadmap.md - New ai-lookup entries for all services - Use case docs for consumer health intelligence - Arena roadmap for simulation advancement Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
serde-error-thiserror
AUDIT (2026-01-31)
Pattern: SerdeError in stemedb-core/src/serde.rs uses manual impl fmt::Display and impl std::error::Error instead of #[derive(thiserror::Error)] like all other error types.
Found: 3 items to fix in 1 file (enum + Display impl + Error impl)
All 5 other error types in the workspace use thiserror:
- stemedb-storage/src/error.rs: StorageError
- stemedb-api/src/error.rs: ApiError
- stemedb-wal/src/error.rs: QuarantineError
- stemedb-query/src/error.rs: QueryError
- stemedb-ingest/src/error.rs: IngestError
FIX (2026-01-31)
- crates/stemedb-core/src/serde.rs:52-69 - Replaced manual
impl fmt::Display+impl std::error::Errorwith#[derive(Debug, Error)]and#[error(...)]attributes. Removeduse std::fmt, addeduse thiserror::Error.
VERIFY (2026-01-31)
- grep for
impl fmt::Display for SerdeError: 0 matches - grep for
impl std::error::Error for SerdeError: 0 matches - grep for
#[derive.*Error.*]on error enums: 6/6 use thiserror - cargo build: OK
- cargo clippy: OK (0 warnings)
- cargo test: 158 passed, 0 failed
ENFORCE (2026-01-31)
- Updated
ai-lookup/patterns/error-handling.mdwith explicit rule: "NEVER use manual impl Display + impl Error — use thiserror derives" - Listed all 6 error types confirming compliance
COMPLETE
Before: 3 items (enum definition, Display impl, Error impl) After: 0 manual impls remaining