Debug Panel β€” File-Drop Workflow + Multi-File Picker (v1.53.0)

RingBufferObserver.Save() persists traces as BOM-free JSON. The VSIX watches **/reslava-*.json and opens the Debug panel automatically β€” no HTTP server, no blocking call.

Save() path rules:

Call File written VSIX picks up?
buf.Save() reslava-traces.json in bin/ βœ…
buf.Save("my-run") reslava-my-run.json in bin/ βœ…
buf.Save("/abs/path/out.json") exact path (no prefix) ❌ (escape hatch)

Generated DebugProxy always saves to reslava-debug-{methodName}.json β€” one file per method, never collides with manual Save().

Multi-file picker β€” when multiple reslava-*.json files exist, the Debug panel header shows a file picker. Labels strip the reslava- prefix (traces.json, debug-Process.json, debug-Validate.json). Switch between traces without closing the panel.

Source badge β€” small badge in the panel header shows where data came from: ⏳ waiting β†’ πŸ“„ file Β· {dir} when file data arrives, 🌐 http when the HTTP endpoint responds first.