Skip to content

feat: stream Python-sidecar waveform through IPC into renderer canvas - #22

Merged
simonhagger merged 2 commits into
mainfrom
feat/python-waveform-pipeline
Aug 24, 2026
Merged

feat: stream Python-sidecar waveform through IPC into renderer canvas#22
simonhagger merged 2 commits into
mainfrom
feat/python-waveform-pipeline

Conversation

@simonhagger

Copy link
Copy Markdown
Owner

Summary

  • Sidecar \GET /waveform?points=n: pure-Python multi-harmonic synthesizer + 32-bin DFT magnitude spectrum (no new runtime dependencies — packaged runtime stays deterministic)
  • New validated IPC channel \python:waveform\ with zod request/response schemas (envelope + correlation-ID consistent with existing handlers)
  • \PythonSidecar.waveform()\ client, preload \waveform()\ API, extended \DesktopPythonApi\
  • Sidecar Lab Signal Pipeline pane: polls at 150 ms, draws oscilloscope trace + spectrum bars on canvas, shows round-trip latency; interval cleared on destroy

Validation

  • Python sidecar suite: 8/8 passed (2 new endpoint tests)
  • contracts/desktop-api/preload/desktop-main builds green; desktop-main TS 84/84; renderer tests + lint green
  • End-to-end path exercises sidecar health monitor, validated-handler authz, envelope validation, and canvas rendering

Security Checklist

  • Security review completed
  • Threat model updated or N/A explained
  • Confirmed no secrets/sensitive data present in committed files

- Sidecar /waveform endpoint synthesizes multi-harmonic signal and
  computes magnitude spectrum in pure Python (no new runtime deps)
- pythonWaveform validated IPC channel with envelope + zod schemas
- PythonSidecar.waveform() client, preload waveform() API, desktop-api
  surface extension
- Sidecar Lab 'Signal Pipeline' pane polls sidecar at 150ms and renders
  oscilloscope trace plus spectrum bars; interval cleared on destroy
@simonhagger
simonhagger merged commit 4bc1cf2 into main Aug 24, 2026
16 checks passed
@simonhagger
simonhagger deleted the feat/python-waveform-pipeline branch August 24, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant