Changelog
5
v0.11.2 — 2026-03-27
Bug Fixes:
- Fixed crash (use-after-free) when license is revoked:
AboutPopup::onLicenseChangednow usesSafePointerto guardcallAsyncagainst post-destruction access - Fixed 429 Too Many Requests from license backend:
startupCheckAsyncmoved from constructor to post-init, eliminating rapid retry storms on revoked tokens - Fixed UTF-8 encoding in license banner and Sanity mode label (bullet/em-dash characters)
- Fixed Upgrade button remaining visible after a license key is entered (even if expired)
v0.11.0–v0.11.1 — 2026-03-26
New Features:
- SQLite Knowledge Engine — VSTKnowledgeDB stores plugin parameters with tags, priority, constraints. Auto-populated on plugin load, queried by PromptBuilder for AI context
get_full_contextMCP tool — returns topology + tag-filtered params + constraints in one call; replaces the 3-callget_patch_architecture + list_hosted_params_ai_ready + constraintssequencesession_topology_cache— param_hash caching avoids redundantget_patch_architecturecalls when plugin state is unchanged- Window size persistence — SYNAPSE remembers its last size; reset button (↺) in the bottom bar
- PromptBuilder plugin guidance — Spire, Zebra2, TAL-U-NO-LX injection with oscillator requirement hints
v0.10.0 — 2026-03-24
New Features:
get_full_context/get_params_batch/get_plugin_state_b64/set_plugin_state_b64— bulk MCP toolspatch_plugin_routing— Zebra2 routing topology via XML state injection (non-automatable routing workaround)probe_plugin_compat— auto-probe non-automatable params; writes to VSTKnowledgeDB- Macro detection (§22.4) — top 8 macro candidates from hosted plugin surfaced in MacroBar
- AI Settings Tab 3 — per-function prompt overrides now applied to AI engine
- MIDI CC assignment UI — CC# editable field per param in TargetMapPanel
- MCP payload optimization —
skip_unnamed,include_inactive_osc, compact mode (Sprint 39) - Trial mode Upgrade CTA — upgrade button + purchase modal
- Cloudflare admin backend — landing page, admin SPA, machines modal, seats counter
- LicenseManager hardening — alive guard, 15 s timeout, crash fix, 5 unit tests
v0.9.0 — 2026-03-22
New Features:
set_ai_config/get_ai_config— configure AI provider, API key, model, endpoint via MCP (headless)get_patch_architecture— full patch topology in one call: oscillators, envelopes, params by role,quick_guideconstraint hint- Scan checkpoint / resume —
scan_checkpoint.jsonwritten every 25 plugins; loaded on restart after crash - MD5-CTR stream cipher for API key storage (
ENC2:prefix) - Cloudflare Worker deployed —
synapse-license-api.thewonderfulworldof.workers.dev(routes: /validate, /activate, /token/renew, /admin/licenses…) - Zebra2 waveform table parsing (ZebraStateChunkParser phase 2) — waveform names injected into PromptBuilder
- OSC settings UI — send/receive port and IP fields, persisted in UIPrefs
v0.4.6 — 2026-03-01 (build 176)
Crash Fixes:
- Fixed use-after-free: atomic
pluginReadyflag protectsprocessBlock()during hosted plugin swap/unload - Fixed FIFO
setParameter:queueParameter()/flushDeferredParams()— non-audio writes to hosted plugin without locks - Added stale-response guard: obsolete AI responses (plugin changed between request and response) are ignored
- Fixed FIFO off-by-one:
juce::AbstractFifo(N)holds N-1 items — capacity corrected inHostedPluginManagerandParamRouter - Fixed parameter name normalization: all non-alphanumeric chars treated as separators — resolves mismatches like
"OSC1: Tune"vs"OSC1 : Tune"(canonical source:ParamNameUtils::normaliseName) - Fixed AI Settings panel not visible without resize:
setSize(W_M, H_M)moved to end of constructor - Fixed AI results not applied to hosted plugin (Mode B):
PromptBuildernow includes hosted plugin params; response callback applies matches by name - Fixed
TargetMapPanelcancel button:onCancelpropagates toOverlayWrappervisibility - Fixed snapshot recall in Mode B:
appendValues("_hosted", params)ensures hosted plugin state is saved and restored - Fixed MIDI learn bidirectional sync:
timerCallbacksyncs macro knob to plugin param value when plugin changes it
New Features:
- Local MCP server (§4.3 / §14): 13 JSON-RPC 2.0 tools on
127.0.0.1:52100, bearer token authset_param,set_params_batch: direct parameter control (no AI, instant)trigger_ai: explicit cloud AI request (separate from direct control)drift_control,breed,set_morph,get_spectral_context,save_snapshot,recall_snapshot,list_targets,list_hosted_params,get_param,get_session_context
- Macros M1-M8: MIDI learn, automatic binding, bidirectional plugin sync
- Proportional resize: drag corner, fixed 900:680 ratio, removed S/M/L buttons
- About Popup: GoRoCoPo version (G0R4C0P0), system info, documentation links
- Full persistence layer: AISettingsPersistence (JSON + XOR), UIPrefsPersistence, ScanDatabase
- SynapseIconCache: 24 embedded FA6 SVG icons in BinaryData
- Three-state AI operation mode: CloudOnly, OfflineOnly, Auto
- Ollama support: configurable URL, model, 120 s timeout for local inference
- ModularTopologyProvider: Zebra 2 native module topology, 3 AI topology adapters (Oscillator, Filter, Envelope)
- ZebraStateChunkParser: native Zebra state chunk parsing for AI context
- PluginCompatibilityTable: canonical parameter mappings for 40+ plugins (Serum, Vital, Zebra2, Surge XT, Phase Plant, Pigments, Diva, Kontakt, FabFilter, Valhalla…)
- KnownPluginList XML cache: loaded at startup, persisted across sessions
- P0.4 Sanity toggle: persisted in UIState ValueTree
- P1.1 Target Map Import/Export: async FileChooser,
.synapsetargetsXML format - Version stamp: configure-time (not build-time),
SynapseVersion.h+SynapseVersionStamp.h
Performance & Robustness:
- DriftEngine: precomputed
driftExcluded[]cache (O(1) vs O(n) per parameter at 30 Hz timer) - DriftEngine: failure guard after
captureAnchor()if plugin unloaded during resize - AI parameter matching: 3 passes (exact, case-insensitive trim, whitespace-normalized)
- Ollama timeout: 120 s for chat POST (ping uses separate configurable timeout)
Tests (491 passing, 0 failing):
- 7 new test classes covering FIFO, normalization, topology adapters, compatibility table, breeding, snapshot, MCP server
SynapsePluginTests.h: test 12 — concurrent rapid timer writes withprocessBlock(level 6)- Thread-safety architecture note added in the test header
v0.4.0 (in development)
Additions:
- Hosted Plugin Mode (Mode B)
- Plugin Browser (scan, categories, favorites, search)
- Fast Mode / State Chunk Mode
.synapsemeta-preset- Macros M1-M8
Changes:
- Spec evolution from v0.3 to v0.4
- Multi-target bridge extension + AI + Audio Brain
v0.3.0
- Multi-provider AI stack
- Model benchmarks in documentation
- Branding and complete English spec
v0.2.0
- Creative Engine: breeding, mutator, drift, text-to-preset
- Audio Brain: FFT, F0, centroid, transients
- Reactive Drift and Spectral Morph
v0.1.0
- Initial bridge architecture
- 4 channels: Automation, MIDI CC, MCP, OSC
- 12 snapshots + 1D/2D morphing
- Target Map + Sanity Mode