From e233dbd1ca2e32cd901d7de4fc0b851390170f6f Mon Sep 17 00:00:00 2001 From: Research Assistant Date: Thu, 21 May 2026 00:02:25 +0800 Subject: [PATCH] fix: extract error message from subprocess stdout on non-zero exit --- paperforge/plugin/main.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/paperforge/plugin/main.js b/paperforge/plugin/main.js index 8e7ba428..7982ca63 100644 --- a/paperforge/plugin/main.js +++ b/paperforge/plugin/main.js @@ -567,7 +567,13 @@ function _runAnnotationSubprocess(vaultPath, args) { var py = memoryState.getCachedPython(vaultPath); if (!py) return Promise.resolve({ ok: false, error: 'Python not configured' }); return runSubprocess(py.path, args, vaultPath, 30000).then(function (result) { - if (result.exitCode !== 0) return { ok: false, error: result.stderr || 'Subprocess failed' }; + if (result.exitCode !== 0) { + try { + var errBody = JSON.parse(result.stdout); + if (errBody && errBody.error && errBody.error.message) return { ok: false, error: errBody.error.message }; + } catch (_) {} + return { ok: false, error: result.stderr || 'Subprocess failed' }; + } try { var parsed = JSON.parse(result.stdout); if (parsed && parsed.ok) return { ok: true, data: parsed.data || parsed.result };