Problem
~30 eprintln!/println! calls scattered across the Rust codebase with no structured logging. No in-app log viewer. The NDJSON event schema exists in docs but isn't consistently emitted.
Scope
- Introduce
tracing + tracing-subscriber with JSONL output
- Replace ad-hoc
eprintln!/println! calls with structured tracing macros
- Log file rotation with
BACKEND_LOG_RETAIN_COUNT
- Formalize NDJSON event schema with JSON Schema validation
- Unified event emitter for CLI and GUI
- In-app log viewer in Settings
- Log line-level filtering by level and event type
Acceptance criteria
Problem
~30
eprintln!/println!calls scattered across the Rust codebase with no structured logging. No in-app log viewer. The NDJSON event schema exists in docs but isn't consistently emitted.Scope
tracing+tracing-subscriberwith JSONL outputeprintln!/println!calls with structured tracing macrosBACKEND_LOG_RETAIN_COUNTAcceptance criteria
eprintln!/println!in src-tauri/src/ (except tests)