Session 30 — Pipeline Sub-Tracks + Production Days Gate + Scroll Fix

What was built

  • Production days on invoices — invoice_service.py computes from SOW lines instead of missing SmartSuite rollup
    • Migration 007 added production_days + as_built_qty columns to sow_lines
  • Invoice delivery audit trail — _log_invoice_delivery() writes to INVOICES/sent_log.json
  • Preview buttons — cert/invoice preview open as positioned popup windows (window.open with specs)
  • Cert subtitle below double rule — masthead template restructured
  • Collapsible sidebar — collapse/expand toggle, 44px collapsed width, localStorage persisted
  • Branch color legend — 5-branch legend under pipeline filter bar, Triage branch color added
  • HEIC conversion complete — 1,115 files converted to JPEG, 253 stale registry entries fixed, 0 HEIC remaining

Services touched