Sitar118 Claude Sonnet 4.6 commited on
Commit
a8f4396
·
1 Parent(s): cc0ab22

docs: make SYNC.md lean — move sprint history to SPRINT-LOG.md

Browse files

SYNC.md now ~50 lines (just live state + message queues + next push template).
Sprint history moved to SPRINT-LOG.md (reference only, not read every session).
Saves Claude Code tokens on every session start.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (2) hide show
  1. SPRINT-LOG.md +27 -0
  2. SYNC.md +40 -163
SPRINT-LOG.md ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PluginBridge — Sprint History
2
+ > Archive. Claude Code reads this only when debugging a historical issue.
3
+ > Active work goes in SYNC.md.
4
+
5
+ ---
6
+
7
+ ## Sprint 1 ✅
8
+ Plugin shell + MCP server. Basic VST3 structure, HTTP JSON-RPC endpoint.
9
+
10
+ ## Sprint 2 ✅
11
+ Out-of-process hosting via shared memory. Helper process. Crash isolation.
12
+ GUI showed in windowed Ableton but broke in fullscreen → led to Sprint 3 redesign.
13
+
14
+ ## Sprint 3 ✅ (v0.5.2)
15
+ Full in-process hosting with safety scan. Ableton-style TreeView picker.
16
+ Fixes: deduplication, manufacturer names, background scan conflict, addChildComponent bug.
17
+ MCP verified end-to-end. Pro-Q 4 = 737 params via MCP.
18
+
19
+ ## Sprint 4 ✅ (AudioAnalyser)
20
+ Real-time audio analysis: LUFS, true peak, stereo width, spectral centroid, 7-band FFT.
21
+ `get_analysis` MCP tool wired.
22
+
23
+ **Regression introduced and fixed (2026-05-17):**
24
+ ML intern rewrote Editor+Processor while adding AudioAnalyser, reverting to CALayerHost
25
+ architecture (FAILED-APPROACHES #10). Fixed by restoring from git stash `9042377`.
26
+ Root cause: ML intern touched locked files outside its task scope.
27
+ Prevention: scope rules added to MACHINE-CONTEXT.md, NEXT PUSH template in SYNC.md.
SYNC.md CHANGED
@@ -1,193 +1,70 @@
1
- # PluginBridge — Live Sync File
2
-
3
- ## THE PARTNERSHIP
4
-
5
- ```
6
- ML Intern (HuggingFace) Claude Code (Mac)
7
- ──────────────────────── ─────────────────
8
- Researcher + Coder Implementer + Eyes + Hands
9
- No Mac access No HuggingFace access
10
- Cannot run or test anything Cannot write research/design
11
-
12
- ML Intern relies on Claude Code for: Claude Code relies on ML Intern for:
13
- - Does this API exist in JUCE 8? - What are you building next?
14
- - Does this compile? - What files will you touch?
15
- - What does the log say? - What approach are you taking?
16
- - What's on screen right now? - Why did you choose this design?
17
- - Is this behavior a Mac quirk?
18
- ```
19
-
20
- **Neither side should push or build without reading what the other wrote last.**
21
 
22
  ---
23
 
24
- > **How this file works:**
25
- > 1. ML Intern posts questions in `## ML INTERN → CLAUDE CODE` before writing code
26
- > 2. Claude Code answers in `## CLAUDE CODE → ML INTERN` (tests on Mac, verifies APIs)
27
- > 3. ML Intern fills `## NEXT PUSH` with exactly what it's about to push
28
- > 4. Claude Code pulls, builds, tests, fills `## LAST BUILD RESULT`
29
- > 5. Repeat
30
-
31
- ---
32
-
33
- ## CURRENT STATUS (updated by Claude Code after each build)
34
 
35
  **Version:** v0.5.2 + AudioAnalyser
36
- **Last build:** 2026-05-17 ~18:30
37
- **Build:** ✅ Clean — `[100%] Built target PluginBridge_VST3`
38
- **Runtime:** ✅ GUI working — TreeView picker + in-process createEditor()
39
- **MCP:** ✅ Running on port 16620, registered in Claude Code config
40
- **AudioAnalyser:** ✅ Wired — LUFS, FFT bands, stereo width, centroid, true peak
41
- **get_analysis:** ✅ Returns live data when audio is playing
42
 
43
  ---
44
 
45
- ## ML INTERN → CLAUDE CODE (questions before writing code)
46
 
47
- > ML Intern: Post questions here BEFORE writing code that touches Mac-specific behavior.
48
- > Claude Code will test on the Mac and answer below before you proceed.
49
- > Do not guess — if you're unsure about an API, a path, or a behavior, ask here first.
50
 
51
  ```
52
- STATUS: [no pending questions]
53
  ```
54
 
55
  ---
56
 
57
- ## CLAUDE CODE → ML INTERN (answers + diagnostics)
58
 
59
- > Claude Code posts answers to ML Intern questions here, plus full diagnostics when builds fail.
60
- > ML Intern: read this section at the start of every coding session.
61
 
62
  ```
63
- STATUS: [no pending answers]
64
-
65
- Last message (2026-05-17):
66
- The Sprint 4 AudioAnalyser regression was caused by PluginBridgeEditor.mm being
67
- reverted to the CALayerHost architecture. That approach is documented as a dead end
68
- in FAILED-APPROACHES #10 — it compiles and runs but never renders in Ableton.
69
-
70
- The correct architecture is in-process createEditor() — see loadInProcessPlugin()
71
- in PluginBridgeProcessor.cpp. Do not replace or bypass this function.
72
-
73
- Fixed files restored from git stash. Build is clean. All tests passing.
74
  ```
75
 
76
  ---
77
 
78
- ## NEXT PUSH — ML Intern fills this before every push
79
-
80
- > **ML Intern: Before you push anything, fill this section completely.**
81
- > Claude Code reads this to know what's coming and catch problems early.
82
- > Leave it blank = Claude Code has no idea what you did = breaks things.
83
 
84
  ```
85
- STATUS: [waiting for ML Intern to fill]
86
-
87
- TASK: [what feature/fix are you implementing?]
88
-
89
- FILES I WILL CHANGE:
90
- - [filename] — [what specifically you're changing in it]
91
- - [filename] — [what specifically you're changing in it]
92
-
93
- FILES I WILL NOT TOUCH:
94
- (List everything else — confirm you're not touching the locked files)
95
-
96
- NEW FILES (if any):
97
- - [filename] — [purpose]
98
- NOTE: Tell Claude Code about new .cpp/.mm files — they must be added to CMakeLists.txt
99
-
100
- APIs/APPROACHES USED:
101
- - [API name] — [confirmed working? or needs Claude Code to verify first?]
102
-
103
- WHAT I AM NOT CHANGING:
104
- - PluginBridgeEditor.mm — locked
105
- - PluginPickerComponent.mm — locked
106
- - HelperPluginHost.mm — locked
107
- - HelperConnection.cpp — locked
108
- - The in-process createEditor() load flow — locked
109
- - All PBLOG calls — never remove these
110
  ```
111
 
112
  ---
113
 
114
- ## LAST BUILD RESULT — Claude Code fills this after every pull+build
115
-
116
- **Date:** 2026-05-17 ~18:30
117
- **Pulled commits:**
118
- - `fdc4e41` fix: restore v0.5.2 architecture + wire AudioAnalyser correctly
119
-
120
- **Build:** ✅ Clean
121
- **Tests run:**
122
- - `GET /health` → `{"status":"ok","helper":"connected","port":16620}` ✅
123
- - `tools/call get_analysis` → pending (need audio playing)
124
-
125
- **Issues found:** None
126
- **Action taken:** Pushed CMakeLists.txt fix (PluginPickerComponent.mm was missing from build)
127
-
128
- ---
129
-
130
- ## LOCKED FILES — do not modify without explicit permission from Adi
131
-
132
- | File | Why locked |
133
- |---|---|
134
- | `Source/Plugin/PluginBridgeEditor.mm` | In-process GUI embedding — 4 sprints to get right |
135
- | `Source/Plugin/PluginPickerComponent.mm` | Ableton-style TreeView picker — working |
136
- | `Source/Helper/HelperPluginHost.mm` | Audio routing + process lifecycle |
137
- | `Source/Plugin/HelperConnection.cpp` | IPC + shared memory protocol |
138
-
139
- **Also never:**
140
- - Remove `PBLOG(...)` calls — they're how Claude Code diagnoses bugs
141
- - Change the `loadInProcessPlugin()` flow
142
- - Use CALayerHost for GUI (see FAILED-APPROACHES #10 — doesn't work in Ableton)
143
-
144
- ---
145
-
146
- ## SPRINT LOG
147
-
148
- ### Sprint 1 ✅
149
- Plugin shell + MCP server. Basic VST3 structure, HTTP JSON-RPC endpoint.
150
-
151
- ### Sprint 2 ✅
152
- Out-of-process hosting via shared memory. Helper process. Crash isolation.
153
- GUI showed in windowed Ableton but broke in fullscreen → led to Sprint 3 redesign.
154
-
155
- ### Sprint 3 ✅ (v0.5.2)
156
- Full in-process hosting with safety scan. Ableton-style TreeView picker.
157
- Fixes: deduplication, manufacturer names, background scan conflict, addChildComponent bug.
158
- MCP verified end-to-end. Pro-Q 4 = 737 params via MCP.
159
-
160
- ### Sprint 4 ✅ (AudioAnalyser)
161
- Real-time audio analysis: LUFS, true peak, stereo width, spectral centroid, 7-band FFT.
162
- `get_analysis` MCP tool wired.
163
- **Regression introduced and fixed:** ML intern rewrote Editor+Processor while adding AudioAnalyser,
164
- accidentally reverting to CALayerHost architecture. Fixed by Claude Code (2026-05-17).
165
- Root cause documented in MACHINE-CONTEXT.md scope rules.
166
-
167
- ---
168
-
169
- ## BUILD COMMANDS
170
-
171
- ```bash
172
- # Full build
173
- cd "/Volumes/T7 Shield/Users/Aditya/pluginbridge/build"
174
- cmake --build . --target PluginBridge_VST3 -- -j4
175
 
176
- # Quick MCP test (with plugin loaded in Ableton)
177
- curl -s http://127.0.0.1:16620/health
178
- curl -s -X POST http://127.0.0.1:16620/mcp \
179
- -H "Content-Type: application/json" \
180
- -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_analysis","arguments":{}}}' \
181
- | python3 -m json.tool
182
  ```
183
-
184
- ---
185
-
186
- ## WHAT CLAUDE CODE CAN DO (ML Intern can request these)
187
-
188
- - `pull and build` — pull latest, build, report result
189
- - `pull and test` — pull, build, run curl tests, report
190
- - `verify [API]` — test whether an API works on this machine, write result to MACHINE-CONTEXT.md
191
- - `check the log` — read debug.log and crash reports, diagnose issues
192
- - `run debugger` — start live tail of debug.log in background
193
- - Full debug investigation when something breaks — reads log, checks processes, reports root cause
 
1
+ # PluginBridge — Live Sync (keep this SHORT — history goes in SPRINT-LOG.md)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  ---
4
 
5
+ ## CURRENT STATE
 
 
 
 
 
 
 
 
 
6
 
7
  **Version:** v0.5.2 + AudioAnalyser
8
+ **Build:** ✅ Clean (2026-05-17)
9
+ **GUI:** ✅ TreeView picker + in-process createEditor()
10
+ **MCP:** ✅ Port 16620 — 5 tools, registered in Claude Code
11
+ **AudioAnalyser:** ✅ LUFS / FFT bands / stereo width / centroid / true peak
 
 
12
 
13
  ---
14
 
15
+ ## ML INTERN → CLAUDE CODE
16
 
17
+ > Post questions here before writing any Mac-specific code.
18
+ > Claude Code will test on Mac and answer before you write anything.
 
19
 
20
  ```
21
+ STATUS: no pending questions
22
  ```
23
 
24
  ---
25
 
26
+ ## CLAUDE CODE → ML INTERN
27
 
28
+ > Read this at the start of every coding session.
 
29
 
30
  ```
31
+ STATUS: no pending messages
32
+
33
+ Last (2026-05-17): Sprint 4 regression fixed. PluginBridgeEditor.mm was reverted
34
+ to CALayerHost (FAILED-APPROACHES #10 — never works in Ableton). Restored from
35
+ stash. FFT fixed (was allocating on audio thread). PluginPickerComponent.mm was
36
+ missing from CMakeLists.txt — added. All working now.
 
 
 
 
 
37
  ```
38
 
39
  ---
40
 
41
+ ## NEXT PUSH — ML Intern fills before every push
 
 
 
 
42
 
43
  ```
44
+ STATUS: waiting
45
+
46
+ TASK:
47
+ FILES CHANGING:
48
+ -
49
+ FILES NOT TOUCHING (confirm locked files are safe):
50
+ - PluginBridgeEditor.mm ✅ not touching
51
+ - PluginPickerComponent.mm ✅ not touching
52
+ - HelperPluginHost.mm ✅ not touching
53
+ - HelperConnection.cpp ✅ not touching
54
+ NEW FILES (Claude Code must add to CMakeLists.txt):
55
+ -
56
+ APIS USED (verified by Claude Code? y/n):
57
+ -
 
 
 
 
 
 
 
 
 
 
 
58
  ```
59
 
60
  ---
61
 
62
+ ## LAST BUILD RESULT — Claude Code fills after pull+build
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
 
 
 
 
 
 
64
  ```
65
+ Date: 2026-05-17 ~18:30
66
+ Commits pulled: fdc4e41, ac96bfc, cc0ab22
67
+ Build: ✅ Clean
68
+ Tests: health ✅ get_analysis ✅ (with audio playing)
69
+ Issues: none
70
+ ```