RAM2118 commited on
Commit
34b8026
·
verified ·
1 Parent(s): 2aa5050

Update SYNC.md — reflects out-of-process architecture, current state, test instructions

Browse files
Files changed (1) hide show
  1. SYNC.md +29 -8
SYNC.md CHANGED
@@ -24,12 +24,33 @@ cd build && cmake --build . --config Release 2>&1 | tail -30
24
  - Write code
25
  - Add commentary
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  ## Status
28
- **Last push:** 2026-05-16 — Out-of-process rebuild BUILDS SUCCESSFULLY ✅
29
- **Architecture:** Plugin runs in separate helper process. Crash-safe.
30
- **Action needed:** Test in Ableton:
31
- 1. Load PluginBridge on a track
32
- 2. Click "Select Plugin" → Pro-Q 4
33
- 3. Click "Open GUI" → should open Pro-Q 4 in floating window
34
- 4. Try Kickstart 2 → should NOT crash Ableton (helper crashes instead, shows reload button)
35
- 5. curl -s http://localhost:16620/health
 
24
  - Write code
25
  - Add commentary
26
 
27
+ ## Architecture (Current)
28
+ **Out-of-process hosting.** Two binaries:
29
+ 1. `PluginBridge.vst3` — thin shell (audio bridge + MCP server), loaded in Ableton
30
+ 2. `PluginBridgeHelper` — standalone exe bundled inside .vst3, hosts the actual plugin
31
+
32
+ If a plugin crashes → only Helper dies → Ableton survives → UI shows "Reload" button.
33
+
34
+ ## What Was Ditched
35
+ - ❌ In-process plugin hosting (crashed Ableton with some plugins)
36
+ - ❌ Plugin scanning via `PluginDirectoryScanner` (triggered NSAlert crashes)
37
+ - ❌ `addDefaultFormats()` (deleted in JUCE 8)
38
+ - ❌ `juce::Thread::setCurrentThreadPriority()` (removed in JUCE 8)
39
+ - ❌ `MSG_NOSIGNAL` (doesn't exist on macOS)
40
+ - ❌ Native title bar close button on Helper window (macOS won't deliver clicks to accessory process)
41
+ - ❌ `activateIgnoringOtherApps` (steals focus from Ableton)
42
+
43
+ ## What's New
44
+ - ✅ Out-of-process via shared memory + semaphores + Unix socket
45
+ - ✅ Crash-safe — plugins that abort() only kill the helper
46
+ - ✅ Plugin GUI as floating always-on-top window (no focus steal)
47
+ - ✅ Toggle GUI via button in PluginBridge panel (Open GUI / Close GUI)
48
+ - ✅ Plugin list from filesystem (no binary loading until user selects)
49
+ - ✅ Native pthread priority for audio thread
50
+ - ✅ `NSApplicationActivationPolicyAccessory` for helper (no Dock, no focus steal)
51
+
52
  ## Status
53
+ **Last push:** 2026-05-16 — GUI focus-steal fix (Accessory policy + orderFrontRegardless)
54
+ **Build:** ✅ Passes
55
+ **Test:** Plugin loads, audio routes, crash-safe confirmed, GUI toggle works
56
+ **Remaining issue:** Testing GUI float behavior (should stay on top without switching apps)