Yuzviak
7e64ef8d2b
feat(stage2-phase2): structlog hot-path, pytest markers, obs package
...
Phase 2 deliverables not yet committed from plan execution:
- structlog wired to 10 hot-path files (orchestrator, eskf, components)
- bind_contextvars(correlation_id=frame_id) in process_frame
- obs/logging_config.py: configure_logging(env) JSON/console renderer
- pyproject.toml: structlog>=25.1, --strict-markers, 6 markers registered
- tests/conftest.py: ac(id) validator plugin + pytest_collection hooks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-11 19:06:47 +03:00
Yuzviak
78dcf7b4e7
fix: post-audit — runtime bugs, functional gaps, docs, hardening
...
Phase A — Runtime bugs:
- SSE: add push_event() method to SSEEventStreamer (was missing, masked by mocks)
- MAVLink: satellites_visible=10 (was 0, triggers ArduPilot failsafe)
- MAVLink: horiz_accuracy=sqrt(P[0,0]+P[1,1]) per spec (was sqrt(avg))
- MAVLink: MEDIUM confidence → fix_type=3 per solution.md (was 2)
Phase B — Functional gaps:
- handle_user_fix() injects operator GPS into ESKF with noise=500m
- app.py uses create_vo_backend() factory (was hardcoded SequentialVO)
- ESKF: Mahalanobis gating on satellite updates (rejects outliers >5σ)
- ESKF: public accessors (position, quaternion, covariance, last_timestamp)
- Processor: no more private ESKF field access
Phase C — Documentation:
- README: correct API endpoints, CLI command, 40+ env vars documented
- Dockerfile: ENV prefixes match pydantic-settings (DB_, SATELLITE_, MAVLINK_)
- tech_stack.md marked ARCHIVED (contradicts solution.md)
Phase D — Hardening:
- JWT auth middleware (AUTH_ENABLED=false default, verify_token on /flights)
- TLS config env vars (AUTH_SSL_CERTFILE, AUTH_SSL_KEYFILE)
- SHA-256 tile manifest verification in SatelliteDataManager
- AuthConfig, ESKFSettings, MAVLinkConfig, SatelliteConfig in config.py
Also: conftest.py shared fixtures, download_tiles.py, convert_to_trt.py scripts,
config wiring into app.py lifespan, config-driven ESKF, calculate_precise_angle fix.
Tests: 196 passed / 8 skipped. Ruff clean.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-02 18:27:35 +03:00