docs: update status with production infrastructure sprint
This commit is contained in:
@@ -1,5 +1,63 @@
|
|||||||
# Status Log
|
# 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
|
## 2026-03-31 — FAPP: Free Appointment Propagation Protocol
|
||||||
|
|
||||||
### Completed
|
### Completed
|
||||||
|
|||||||
Reference in New Issue
Block a user