---
milestone: v3.0
audited: 2026-03-24
status: tech_debt
scores:
  requirements: 13/13
  phases: 5/5
  integration: 12/13
  flows: 4/4
gaps:
  requirements: []
  integration:
    - id: MISS-01
      description: "/health endpoint does not expose ws_mode or live WS connection count"
      affected_requirement: WS-03
      severity: non-blocking
  flows: []
tech_debt:
  - phase: 01-mutation-safety
    items:
      - "MUT-02 production 24-worker kintsugi pass pending deployment to bigblack"
  - phase: 02-sidecar-fill-pipeline
    items:
      - "test_cross_midnight_bars_filtered helper uses open_time_us/close_time_us keys instead of open_time_ms/close_time_ms (pre-existing, non-production)"
  - phase: 04-combined-websocket-streams
    items:
      - "WS-03 24h+ production Stathera continuity run pending deployment (D-02 follow-up)"
      - "/health endpoint missing ws_mode field for SC-4 observability"
      - "D-02 follow-up phase needed: monit, Telegram, heartbeat integration for combined streams"
  - phase: 05-dead-code-cleanup
    items:
      - "WsControlRateLimiter kept with #[allow(dead_code)] — pre-built for combined WS"
nyquist:
  compliant_phases: [01]
  partial_phases: [02]
  missing_phases: [03, 04, 05]
  overall: partial
---

# v3.0 Milestone Audit — Streaming Reliability + Pipeline Cleanup

## Summary

**Status:** tech_debt (all requirements met, no critical blockers, accumulated deferred items)
**Requirements:** 13/13 satisfied
**Phases:** 5/5 complete
**Integration:** 12/13 wiring points verified (1 non-blocking observability gap)

## Requirements Coverage (3-Source Cross-Reference)

| REQ-ID     | VERIFICATION.md | SUMMARY Frontmatter   | REQUIREMENTS.md | Final Status |
| ---------- | --------------- | --------------------- | --------------- | ------------ |
| MUT-01     | passed          | listed (01-01, 01-02) | [x]             | satisfied    |
| MUT-02     | passed          | listed (01-01)        | [x]             | satisfied    |
| STREAM-01  | passed          | listed (02-01)        | [x]             | satisfied    |
| STREAM-02  | passed          | listed (02-01, 02-02) | [x]             | satisfied    |
| PQFIRST-01 | passed          | listed (03-01)        | [x]             | satisfied    |
| PQFIRST-02 | passed          | listed (03-01)        | [x]             | satisfied    |
| PQFIRST-03 | passed          | listed (03-01)        | [x]             | satisfied    |
| WS-01      | human_needed    | listed (04-01)        | [x]             | satisfied    |
| WS-02      | human_needed    | listed (04-01)        | [x]             | satisfied    |
| WS-03      | human_needed    | listed (04-02)        | [x]             | satisfied    |
| CLEAN-01   | gaps_found\*    | listed (05-01)        | [x]             | satisfied    |
| CLEAN-02   | gaps_found\*    | listed (05-02)        | [x]             | satisfied    |
| CLEAN-03   | gaps_found\*    | listed (05-01, 05-02) | [x]             | satisfied    |

*Phase 4 human_needed: 24h production Stathera run deferred per D-02
*Phase 5 gaps_found: documentation-only gaps (script count discrepancy, traceability table) — fixed inline

## Cross-Phase Integration

All 5 phases wire correctly across the sidecar startup sequence:

1. Phase 1: partition-scoped DELETE in clean-slate pre-fill
2. Phase 4: WsMode config plumbed to Rust 2-connection split
3. Phase 3: Parquet-first seed override between DELETE and fill_from_rest
4. Phase 2: Stathera validation + junction telemetry in sync_flush
5. Phase 5: Dead code removed without disturbing any wiring

**One observability gap:** `/health` does not expose `ws_mode` or live connection count (MISS-01, non-blocking).

## Tech Debt

### Phase 1: Mutation Safety

- MUT-02 production 24-worker pass pending bigblack deployment

### Phase 2: Sidecar Fill Pipeline

- test helper key mismatch (open_time_us vs open_time_ms) — pre-existing, non-production

### Phase 4: Combined WebSocket Streams

- WS-03 24h+ Stathera production run pending deployment
- /health endpoint missing ws_mode field
- D-02 follow-up phase needed: monit, Telegram, heartbeat for combined streams

### Phase 5: Dead Code Cleanup

- WsControlRateLimiter kept with #[allow(dead_code)]

**Total:** 6 items across 4 phases — all non-blocking
