From 749c00b75a7082f9956de4dd1d5d4b4f86cf7d61 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 d063fc7..df0e8f7 100644 --- a/api/services/extension_process.py +++ b/api/services/extension_process.py @@ -257,7 +257,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"))