From 1f35d54ac294f61297be4584f4ccb387207028f2 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 23 Sep 2025 09:07:46 -0300 Subject: [PATCH] fix: lsp/mcp command expand ~ (#1105) * fix(lsp): powernap load by name Signed-off-by: Carlos Alexandro Becker * fix(mcp): expand command Signed-off-by: Carlos Alexandro Becker * fix(lsp): expand command Signed-off-by: Carlos Alexandro Becker --------- Signed-off-by: Carlos Alexandro Becker --- internal/config/load.go | 2 +- internal/llm/agent/mcp-tools.go | 3 ++- internal/lsp/client.go | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/config/load.go b/internal/config/load.go index 06ece6467177a443e7b6af20754976e901f642e9..500fc236834ae6bfd17811ad64692d2341b9f8e1 100644 --- a/internal/config/load.go +++ b/internal/config/load.go @@ -352,7 +352,7 @@ func (c *Config) applyLSPDefaults() { // Apply defaults to each LSP configuration for name, cfg := range c.LSP { // Try to get defaults from powernap based on command name - base, ok := configManager.GetServer(cfg.Command) + base, ok := configManager.GetServer(name) if !ok { continue } diff --git a/internal/llm/agent/mcp-tools.go b/internal/llm/agent/mcp-tools.go index 90011c43a0fce476c119c7a981ea6760c294b806..67d46b54b637af8d3dacef8149d34202157a9565 100644 --- a/internal/llm/agent/mcp-tools.go +++ b/internal/llm/agent/mcp-tools.go @@ -15,6 +15,7 @@ import ( "github.com/charmbracelet/crush/internal/config" "github.com/charmbracelet/crush/internal/csync" + "github.com/charmbracelet/crush/internal/home" "github.com/charmbracelet/crush/internal/llm/tools" "github.com/charmbracelet/crush/internal/permission" "github.com/charmbracelet/crush/internal/pubsub" @@ -360,7 +361,7 @@ func createMcpClient(name string, m config.MCPConfig) (*client.Client, error) { return nil, fmt.Errorf("mcp stdio config requires a non-empty 'command' field") } return client.NewStdioMCPClientWithOptions( - m.Command, + home.Long(m.Command), m.ResolvedEnv(), m.Args, transport.WithCommandLogger(mcpLogger{name: name}), diff --git a/internal/lsp/client.go b/internal/lsp/client.go index 70146d3ad181459db3d2193383373159f72b2022..aedf2476918fd5394c4a876bf7cd5ec177348905 100644 --- a/internal/lsp/client.go +++ b/internal/lsp/client.go @@ -15,6 +15,7 @@ import ( "github.com/charmbracelet/crush/internal/config" "github.com/charmbracelet/crush/internal/csync" "github.com/charmbracelet/crush/internal/fsext" + "github.com/charmbracelet/crush/internal/home" powernap "github.com/charmbracelet/x/powernap/pkg/lsp" "github.com/charmbracelet/x/powernap/pkg/lsp/protocol" "github.com/charmbracelet/x/powernap/pkg/transport" @@ -55,7 +56,7 @@ func New(ctx context.Context, name string, config config.LSPConfig) (*Client, er // Create powernap client config clientConfig := powernap.ClientConfig{ - Command: config.Command, + Command: home.Long(config.Command), Args: config.Args, RootURI: rootURI, Environment: func() map[string]string {