---
milestone: v7.2
audited: "2026-03-27T22:30:00Z"
status: tech_debt
scores:
  requirements: 7/8
  phases: 3/3
  integration: 7/8
  flows: 2/2
gaps:
  requirements:
    - id: "ARROW-03"
      status: "partial"
      phase: "23"
      claimed_by_plans: ["23-02-PLAN.md"]
      completed_by_plans: ["23-02-SUMMARY.md"]
      verification_status: "human_needed"
      evidence: "Code path complete; RSS measurement requires production deployment on bigblack with 200K-bar drain"
tech_debt:
  - phase: 23-arrow-ffi-drain-bars
    items:
      - "ARROW-03: Peak RSS measurement deferred to production deploy (memray/systemd MemoryCurrent)"
  - phase: 24-hot-path-allocation-reduction
    items:
      - "ALLOC-03 integration gap fixed inline (arrow_flush.py get_symbol_entries → symbol_modes, fallback path wiring)"
      - "Phase 24 VERIFICATION.md still shows gaps_found (pre-fix snapshot)"
nyquist:
  compliant_phases: []
  partial_phases: [23]
  missing_phases: [24, 25]
  overall: partial
---

# v7.2 Milestone Audit — Memory Efficiency -- Zero-OOM Sidecar

## Summary

| Metric       | Score | Notes                                                 |
| ------------ | ----- | ----------------------------------------------------- |
| Requirements | 7/8   | ARROW-03 partial (production RSS measurement pending) |
| Phases       | 3/3   | All phases complete with verification                 |
| Integration  | 7/8   | Arrow fallback path wiring fixed during audit         |
| E2E Flows    | 2/2   | Arrow drain path + dict fallback both work            |

## Requirements Coverage

| REQ-ID   | Description                                        | Phase | VERIFICATION | SUMMARY | Final         |
| -------- | -------------------------------------------------- | ----- | ------------ | ------- | ------------- |
| ARROW-01 | drain_bars_arrow() returns Arrow RecordBatch       | 23    | passed       | listed  | **satisfied** |
| ARROW-02 | \_sync_flush_rest_bars Polars zero-copy            | 23    | passed       | listed  | **satisfied** |
| ARROW-03 | Peak RSS < 2.5G during 200K-bar drain              | 23    | human_needed | listed  | **partial**   |
| ALLOC-01 | Single OpenDeviationBarCache() in \_create_engine  | 24    | passed       | listed  | **satisfied** |
| ALLOC-02 | \_write_bars_batch_to_clickhouse accepts DataFrame | 24    | passed       | listed  | **satisfied** |
| ALLOC-03 | get_symbol_entries() called once, not per-flush    | 24    | gaps→fixed   | listed  | **satisfied** |
| LAZY-01  | scan_parquet column projection for dedup           | 25    | passed       | listed  | **satisfied** |
| LAZY-02  | In-place sort for Stathera diagnostic              | 25    | passed       | listed  | **satisfied** |

## Phase Verification Summary

| Phase | Name                               | Status       | Gaps                           |
| ----- | ---------------------------------- | ------------ | ------------------------------ |
| 23    | Arrow FFI drain_bars               | human_needed | RSS measurement on bigblack    |
| 24    | Hot-Path Allocation Reduction      | fixed        | Arrow path wiring fixed inline |
| 25    | Lazy Evaluation + Cache Efficiency | passed       | None                           |

## Integration Check

Cross-phase wiring verified by gsd-integration-checker:

- **Phase 23 → 24:** Arrow RecordBatch flows through dispatch → Polars zero-copy → shared cache write ✓
- **Phase 24 → all:** 5-tuple return, symbol_modes threading through dict and Arrow paths ✓
- **Phase 25:** Self-contained optimizations, no cross-phase dependencies ✓
- **Fallback path:** `_write_batch_with_retry` now receives `cache=_cache, ouroboros_mode=_mode` ✓ (fixed during audit)

## Tech Debt

### Phase 23: Arrow FFI drain_bars

- ARROW-03: Peak RSS measurement deferred to production deploy (memray or `systemd MemoryCurrent` on bigblack)

### Phase 24: Hot-Path Allocation Reduction

- VERIFICATION.md still shows `gaps_found` from pre-fix state (gap was fixed inline, commit `6113986` + `816a918`)

### Total: 2 items across 2 phases
