From f001a8262518ce5a32ce794445b7383eb5d7f226 Mon Sep 17 00:00:00 2001 From: yyueniao Date: Fri, 26 Jun 2026 07:53:20 +0800 Subject: [PATCH] fix(server): preserve self binding in heartbeat timer disconnect --- lua/opencode/server/init.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/opencode/server/init.lua b/lua/opencode/server/init.lua index 30e8fde3..bb4bf70e 100644 --- a/lua/opencode/server/init.lua +++ b/lua/opencode/server/init.lua @@ -337,7 +337,13 @@ function Server:connect() self.subscription_job_id = self:sse_subscribe( function(response) if self.heartbeat_timer then - self.heartbeat_timer:start(OPENCODE_HEARTBEAT_INTERVAL_MS + 1000, 0, vim.schedule_wrap(self.disconnect)) + self.heartbeat_timer:start( + OPENCODE_HEARTBEAT_INTERVAL_MS + 1000, + 0, + vim.schedule_wrap(function() + self:disconnect() + end) + ) end if response.type == "server.connected" then