stemedb/.agentive-remediation/logging-consistency/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

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