From df6e49f8fb1a4fcabf2dc9e298368bf5b336bad3 Mon Sep 17 00:00:00 2001 From: Harrison Cramer Date: Thu, 23 Apr 2026 20:28:45 -0400 Subject: [PATCH] fix(build): allow force-rebuilding server binary The build function was checking if server.binary was non-nil to determine if the user provided a custom binary path. After the first build, this field is always set, preventing force-rebuilds from working. Now we track user-provided binaries with a separate flag set during config merge. Closes #545 Co-Authored-By: Claude Opus 4.6 (1M context) --- lua/gitlab/server.lua | 3 +-- lua/gitlab/state.lua | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/gitlab/server.lua b/lua/gitlab/server.lua index f4f99c99..dbd88ab7 100644 --- a/lua/gitlab/server.lua +++ b/lua/gitlab/server.lua @@ -122,8 +122,7 @@ M.build = function(override) state.settings.root_path = u.get_root_path() -- If the user provided a path to the server, don't build it. - if state.settings.server.binary ~= nil then - state.settings.server.binary_provided = true + if state.settings.server.binary_provided then local binary_exists = vim.loop.fs_stat(state.settings.server.binary) if binary_exists == nil then u.notify( diff --git a/lua/gitlab/state.lua b/lua/gitlab/state.lua index 3a6df9b5..eb1e5db7 100644 --- a/lua/gitlab/state.lua +++ b/lua/gitlab/state.lua @@ -454,6 +454,9 @@ end ---@param args Settings ---@return Settings M.merge_settings = function(args) + if args.server and args.server.binary ~= nil then + M.settings.server.binary_provided = true + end M.settings = u.merge(M.settings, args) return M.settings end