fix(ble): handle permission reply fallbacks

(cherry picked from commit ad7189e7dd)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
This commit is contained in:
Zhou Xiao
2026-05-09 10:52:07 +08:00
parent 1bfe8a806d
commit 4e7ad7a3ef
@@ -90,7 +90,7 @@ export async function replyToOpenCodePermission(
return return
} }
if (typeof client._client?.post === "function" && message !== undefined) { if (typeof client._client?.post === "function") {
// In TUI/plugin runtime, serverUrl can be a phantom URL: a plain // In TUI/plugin runtime, serverUrl can be a phantom URL: a plain
// fetch(serverUrl) may fail or hit the wrong OpenCode instance. The // fetch(serverUrl) may fail or hit the wrong OpenCode instance. The
// injected HeyAPI client uses OpenCode's in-process app.fetch() binding, // injected HeyAPI client uses OpenCode's in-process app.fetch() binding,
@@ -112,7 +112,7 @@ export async function replyToOpenCodePermission(
return return
} }
if (serverUrl !== undefined && directory !== undefined && message !== undefined) { if (serverUrl !== undefined && directory !== undefined) {
debugLog("using OpenCode raw v2 permission.reply endpoint") debugLog("using OpenCode raw v2 permission.reply endpoint")
try { try {
const response = await fetch(new URL(`/permission/${encodeURIComponent(requestID)}/reply`, serverUrl), { const response = await fetch(new URL(`/permission/${encodeURIComponent(requestID)}/reply`, serverUrl), {
@@ -126,7 +126,11 @@ export async function replyToOpenCodePermission(
if (!response.ok) { if (!response.ok) {
throw new Error(`HTTP ${response.status} ${await response.text()}`) throw new Error(`HTTP ${response.status} ${await response.text()}`)
} }
debugLog("OpenCode permission response completed", await response.json()) try {
debugLog("OpenCode permission response completed", await response.json())
} catch {
debugLog("OpenCode permission response completed (non-JSON body)")
}
return return
} catch (error) { } catch (error) {
debugLog("OpenCode raw v2 permission.reply failed, trying fallback", { error: String(error) }) debugLog("OpenCode raw v2 permission.reply failed, trying fallback", { error: String(error) })