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>
64 lines
2.6 KiB
Markdown
64 lines
2.6 KiB
Markdown
# logging-consistency
|
|
|
|
## AUDIT (2026-02-01)
|
|
|
|
**Pattern:** `println!`/`eprintln!` usage instead of structured tracing
|
|
**Found:** 13 instances in 6 files
|
|
|
|
### Breakdown by Category
|
|
|
|
| Category | Count | Files | Decision |
|
|
|----------|-------|-------|----------|
|
|
| Doc comments | 8 | skeptic.rs (lens), skeptic.rs (query), lib.rs (query), lib.rs (storage), materializer.rs | KEEP - example code |
|
|
| CLI output | 5 | main.rs (sim) | KEEP - user-facing terminal output |
|
|
| Production code | 0 | - | N/A |
|
|
|
|
### Detailed Locations
|
|
|
|
**Doc Comments (Intentional - Example Code):**
|
|
- `crates/stemedb-lens/src/skeptic.rs:32` - `//!` example
|
|
- `crates/stemedb-lens/src/skeptic.rs:34` - `//!` example
|
|
- `crates/stemedb-query/src/skeptic.rs:27` - `//!` example
|
|
- `crates/stemedb-query/src/skeptic.rs:29` - `//!` example
|
|
- `crates/stemedb-query/src/lib.rs:41` - `//!` example
|
|
- `crates/stemedb-storage/src/lib.rs:112` - `//!` example
|
|
- `crates/stemedb-storage/src/lib.rs:115` - `//!` example
|
|
- `crates/stemedb-query/src/materializer.rs:75` - `///` example
|
|
|
|
**CLI Binary Output (Intentional - User Facing):**
|
|
- `crates/stemedb-sim/src/main.rs:32` - prints simulation summary
|
|
- `crates/stemedb-sim/src/main.rs:35` - prints PASSED message
|
|
- `crates/stemedb-sim/src/main.rs:38` - prints FAILED message
|
|
- `crates/stemedb-sim/src/main.rs:40` - prints error details
|
|
- `crates/stemedb-sim/src/main.rs:46` - prints fatal error
|
|
|
|
**Conclusion:** All instances are intentional. No production library code uses println.
|
|
|
|
## ENFORCE (2026-02-01)
|
|
|
|
Added clippy lints to prevent future `println!`/`eprintln!` in library code:
|
|
|
|
| File | Change |
|
|
|------|--------|
|
|
| `Cargo.toml` | Added `print_stdout = "warn"`, `print_stderr = "warn"` to `[workspace.lints.clippy]` |
|
|
| `crates/stemedb-sim/src/main.rs` | Added `#![allow(clippy::print_stdout, clippy::print_stderr)]` with comment explaining CLI exemption |
|
|
|
|
Verified: `cargo clippy --workspace -- -D warnings` passes.
|
|
|
|
## DOCUMENT (2026-02-01)
|
|
|
|
Added "Structured Logging" critical rule to CLAUDE.md:
|
|
> **Structured Logging:** Use `tracing` (info!, warn!, error!) instead of `println!`/`eprintln!`. Clippy enforces via `print_stdout`/`print_stderr` at warn level. CLI binaries (e.g., `stemedb-sim`) may use `#![allow()]` for user-facing output.
|
|
|
|
## COMPLETE (2026-02-01)
|
|
|
|
**Before:** 13 println!/eprintln! instances (all intentional)
|
|
**After:** 0 violations (8 in doc comments, 5 in CLI binary with allow attribute)
|
|
|
|
**Enforcement:**
|
|
- Workspace clippy lints: `print_stdout = "warn"`, `print_stderr = "warn"`
|
|
- CLI exemption pattern: `#![allow(clippy::print_stdout, clippy::print_stderr)]`
|
|
|
|
**Documentation:**
|
|
- CLAUDE.md Critical Rules: Added "Structured Logging" rule
|