From 840a8f504ffb8e95ef6dead81e7315eef1b19009 Mon Sep 17 00:00:00 2001 From: Bryan-chua777 Date: Thu, 14 May 2026 10:54:36 +0800 Subject: [PATCH] fix(extensions): accept 'ready' response as valid reply to load action Some extensions (e.g. triposg) respond to the load action with a 'ready' message (including params_schema) rather than 'loaded'. The load() method previously only accepted 'loaded', causing a RuntimeError even though the extension had initialised successfully. Accepting both 'ready' and 'loaded' as valid load responses fixes the crash. The params_schema sent with a 'ready' reply is already captured by _start(); handling it here is a no-op but keeps the contract clear. Reproducer: RuntimeError: [triposg/generate] Unexpected response to load: {'type': 'ready', 'params_schema': [...]} --- api/services/extension_process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/services/extension_process.py b/api/services/extension_process.py index 89622a2..f8ab7b3 100644 --- a/api/services/extension_process.py +++ b/api/services/extension_process.py @@ -174,7 +174,7 @@ def load(self) -> None: self._send({"action": "load"}) msg = self._recv(timeout=None) # model load can be arbitrarily slow - if msg.get("type") == "loaded": + if msg.get('type') in ['loaded', 'ready']: self._loaded = True elif msg.get("type") == "error": raise RuntimeError(msg.get("traceback") or msg.get("message"))