From 580ae27738ec999692d69e126608bd62f6caff14 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 3 Aug 2026 16:24:05 +0000 Subject: [PATCH 1/3] Initial plan From 0edd08b5bd2573f316faeaeb5c8adc30c3d26a17 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 3 Aug 2026 16:26:52 +0000 Subject: [PATCH 2/3] Replace bare print() with logger.exception() in replace-audio handler --- routes.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/routes.py b/routes.py index 08fe618..88740da 100644 --- a/routes.py +++ b/routes.py @@ -7082,9 +7082,12 @@ async def replace_audio(data: dict): next_step = "none" else: next_step = "save" - except Exception as e: - print(f"[Editor] replace-audio sloppak persist failed: {e}") - return JSONResponse({"error": f"persist failed: {e}"}, 500) + except Exception: + import logging as _elog + _elog.getLogger("slopsmith.plugin.editor").exception( + "replace-audio: sloppak persist failed" + ) + return JSONResponse({"error": "persist failed — see server logs"}, 500) return {"audio_url": audio_url, "persisted": persisted, "next_step": next_step} From 081d3bdabfbd0508508ef473de39a68f617c4e00 Mon Sep 17 00:00:00 2001 From: Carolina <79524656+carochacs@users.noreply.github.com> Date: Wed, 12 Aug 2026 22:25:46 -0600 Subject: [PATCH 3/3] Bump plugin version to 1.8.2 and update CHANGELOG --- CHANGELOG.md | 6 ++++++ plugin.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adfea4a..5e537b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -203,6 +203,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 "Drum Pads" (distinct from the in-strip Kit/Pads toggle); the Mixer tooltip matches the Control Bar's wording; and the create-song year placeholder is current. +- **The replace-audio persistence failure path no longer leaks exception + details or filesystem paths to the client.** The handler now logs the full + traceback server-side via `logging.getLogger("slopsmith.plugin.editor").exception(...)` + and returns a generic `"persist failed — see server logs"` response, matching + the codebase's existing structured-logging convention. + ### Added - **Track regions — import a drum part into an existing project as a placed, diff --git a/plugin.json b/plugin.json index 980e372..671b77e 100644 --- a/plugin.json +++ b/plugin.json @@ -1,7 +1,7 @@ { "id": "editor", "name": "Arrangement Editor", - "version": "1.8.0", + "version": "1.8.2", "description": "Build and edit feedpak arrangements — import Guitar Pro tabs, sync audio, and tune every note.", "category": "creation", "icon": "assets/thumb.png",