Adds README.md to each of the 13 SPM packages (AgentCore, Bus, Config, DevOverlay, Harness, Keychain, Logging, MCP, Memory, Replay, Shell, Vision, Voice). Each covers purpose, key public types, deps, consumers, invariants (pulled from CLAUDE.md + grep-gates + audit findings), test stack, and notable files. Memory README explicitly marks the package functionally OFF until vec0.dylib + Ollama models land. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
Logging
Library product JarvisLogging. Channel taxonomy + swift-log bootstrap + file rotation + the Redact helper.
Key public types
| Type | Purpose |
|---|---|
JarvisLogChannel |
Channel enum — agent, tools, ui, system, plus subsystem-specific |
LoggingBootstrap |
Wires swift-log to OSLogHandler (default) + FileLogHandler (rotation) |
OSLogHandler |
os_log backend |
FileLogHandler |
NDJSON rotating file backend |
FileRotatingWriter |
Size + time-based rotation |
Redact |
Mask helper for secrets in logger.debug strings |
LogPaths |
~/Library/Application Support/Jarvis/logs/ resolver |
DateProvider |
Test seam for deterministic timestamps |
Depends on
External only: swift-log.
Used by
Every package and App/. This is the leaf logging dependency for the whole project.
Key invariants / contracts
- Bootstrap is idempotent. Calling
LoggingBootstrap.bootstrap()twice is a no-op. - Channels match the taxonomy in CLAUDE.md. Don't invent ad-hoc subsystems — extend the enum.
Redactis the only sanitizer for log strings that may contain secrets / PII / transcript text.- T-06-05-03: never log voice transcript text. Enforced by code review + reading every Voice/Memory
logger.debugsite. - File rotation: size cap + age cap. Old logs get rolled to
.gzsiblings, then pruned.
Tests
XCTest. Round-trip log emission, rotation triggers, redact patterns.
Notable files
Sources/JarvisLogging/JarvisLogChannel.swift— channel enumSources/JarvisLogging/LoggingBootstrap.swift— entry pointSources/JarvisLogging/Redact.swift— sanitizerSources/JarvisLogging/FileRotatingWriter.swift— rotation