stemedb/.agentive-remediation/serde-error-thiserror/history.md
jordan 1ce4004807 feat: Complete Phase 2 (The Cortex) - query, lens, and API layers
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>
2026-02-01 13:22:44 -07:00

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::Error with #[derive(Debug, Error)] and #[error(...)] attributes. Removed use std::fmt, added use 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.md with 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