diff --git a/docs/status.md b/docs/status.md index dbc47aa..8be9daf 100644 --- a/docs/status.md +++ b/docs/status.md @@ -1,5 +1,63 @@ # Status Log +## 2026-04-01 — Production Infrastructure Sprint + +### Completed +- **Error handling** — `error.rs`: Structured error types with context for all subsystems + - MeshError, TransportError, RoutingError, CryptoError, ProtocolError, StoreError, ConfigError + - ErrorContext trait for chaining errors with context + - Helper methods for common error construction + +- **Configuration** — `config.rs`: Runtime config with TOML parsing + - MeshConfig, IdentityConfig, AnnounceConfig, RoutingConfig, StoreConfig + - TransportConfig (QUIC/TCP/LoRa), CryptoConfig, RateLimitConfig, LoggingConfig + - Validation with meaningful error messages + - MeshConfig::constrained() preset for low-resource devices + +- **Metrics/Observability** — `metrics.rs`: Counter/Gauge/Histogram primitives + - Per-transport metrics (sent/received/errors/bytes) + - Routing metrics (table size, lookups, misses) + - Store metrics (stored/delivered/expired) + - Crypto metrics (encryptions, failures, replay detections) + - JSON-serializable MetricsSnapshot for export + +- **Rate limiting** — `rate_limit.rs`: DoS protection + - TokenBucket with configurable refill rate + - Per-peer limiters for messages, announces, KeyPackage requests + - DutyCycleTracker for LoRa EU868 compliance + - BackpressureController with priority-based shedding + +- **Persistence** — `persistence.rs`: Durable storage + - AppendLog with JSON entries and compaction + - PersistentRoutingTable with TTL-based expiry + - PersistentMessageStore for offline delivery + - Atomic file operations with fsync + +- **Graceful shutdown** — `shutdown.rs`: Coordinated termination + - ShutdownCoordinator with phase transitions (Draining → Persisting → Cleanup → Complete) + - TaskGuard RAII for tracking active tasks + - ConnectionDrainer for clean connection teardown + - ShutdownHooks for persist/cleanup callbacks + +- **Integration tests** — `tests/multi_node.rs`: 16 production scenarios + - Rate limiting per-peer isolation + - Store-and-forward, message dedup, GC + - Envelope V2 signatures, forwarding, broadcast + - Config validation, TOML roundtrip + - Shutdown coordination, concurrent access + +### Test Coverage +- 189 unit tests + 16 integration tests = **205 total** +- All passing + +### What's Next +1. Wire new modules into P2pNode startup +2. Add tracing spans for distributed tracing +3. Health check HTTP endpoint +4. Prometheus metrics export + +--- + ## 2026-03-31 — FAPP: Free Appointment Propagation Protocol ### Completed