|
Download SPRINT-LOG.md from RAM2118/pluginbridge: direct link, hf CLI and curl.
- Browser
- Download file 2.89 kB
-
https://huggingface.co/RAM2118/pluginbridge/resolve/main/SPRINT-LOG.md
- Command line
-
hf download hf://RAM2118/pluginbridge/SPRINT-LOG.md
-
curl -L -o SPRINT-LOG.md https://huggingface.co/RAM2118/pluginbridge/resolve/main/SPRINT-LOG.md
2.89 kB
| # PluginBridge β Sprint History | |
| > Archive. Claude Code reads this only when debugging a historical issue. | |
| > Active work goes in SYNC.md. | |
| --- | |
| ## Sprint 1 β | |
| Plugin shell + MCP server. Basic VST3 structure, HTTP JSON-RPC endpoint. | |
| ## Sprint 2 β | |
| Out-of-process hosting via shared memory. Helper process. Crash isolation. | |
| GUI showed in windowed Ableton but broke in fullscreen β led to Sprint 3 redesign. | |
| ## Sprint 3 β (v0.5.2) | |
| Full in-process hosting with safety scan. Ableton-style TreeView picker. | |
| Fixes: deduplication, manufacturer names, background scan conflict, addChildComponent bug. | |
| MCP verified end-to-end. Pro-Q 4 = 737 params via MCP. | |
| ## Sprint 8 β (v0.8.0 β Port 16620 Restored) | |
| Reverted out-of-scope regression from Sprint 7: McpServer now tries port 16620 first | |
| (via kDefaultMcpPort constant), falls back to bind_to_any_port if taken. | |
| First instance always gets 16620. Multi-instance still works. | |
| Build: β Clean 2026-05-17. | |
| ## Sprint 7 β (v0.7.0 β In-Process Param Routing) | |
| Route MCP set_params/get_params/search_param through inProcessPlugin for SAFE plugins. | |
| Root cause: after Sprint 5, audio+GUI use in-process instance but MCP still targets Helper's | |
| hidden instance β EQ changes invisible in Pro-Q 4. | |
| Fix: three param callbacks on McpServer (same pattern as getAnalysisCallback). | |
| Also fixes id-vs-index bug: search_param now returns "i" (array index) not VST3 param ID. | |
| Build: β Clean 2026-05-17. | |
| β οΈ Out-of-scope regression: port 16620 priority removed from McpServer.cpp β Sprint 8 fixes. | |
| ## Sprint 6 β (v0.6.0 β Multi-Instance + Channel Selector) | |
| Channel name dropdown in Editor (30 items: Vocals/Drums/Bass/Keys/Synths/Strings/FX/Buses/Custom). | |
| Auto-port via bind_to_any_port β each instance gets its own port. | |
| InstanceRegistry.h β atomic read/write of /tmp/pluginbridge-registry.json. | |
| list_instances MCP tool (6th tool) β returns all loaded channel names. | |
| get_analysis prefixed with channel name: "[Vocal Bus] -16.2 LUFS | ..." | |
| ## Sprint 5 β (v0.5.3 β Live Spectrum) | |
| Audio routed through in-process plugin for SAFE plugins. | |
| Pro-Q 4 spectrum analyzer shows live signal. All plugin GUI meters/displays now work. | |
| prepareToPlay() added to loadInProcessPlugin() β safe because UNSAFE plugins never reach it. | |
| ML intern correctly identified the prepareToPlay risk and asked before writing code. β | |
| ## Sprint 4 β (AudioAnalyser) | |
| Real-time audio analysis: LUFS, true peak, stereo width, spectral centroid, 7-band FFT. | |
| `get_analysis` MCP tool wired. | |
| **Regression introduced and fixed (2026-05-17):** | |
| ML intern rewrote Editor+Processor while adding AudioAnalyser, reverting to CALayerHost | |
| architecture (FAILED-APPROACHES #10). Fixed by restoring from git stash `9042377`. | |
| Root cause: ML intern touched locked files outside its task scope. | |
| Prevention: scope rules added to MACHINE-CONTEXT.md, NEXT PUSH template in SYNC.md. | |