@@ -13,6 +13,7 @@ import (
13 "charm.land/fantasy"
13 "charm.land/fantasy"
14 "github.com/charmbracelet/crush/internal/csync"
14 "github.com/charmbracelet/crush/internal/csync"
15 "github.com/charmbracelet/crush/internal/diff"
15 "github.com/charmbracelet/crush/internal/diff"
16+ "github.com/charmbracelet/crush/internal/filepathext"
16 "github.com/charmbracelet/crush/internal/fsext"
17 "github.com/charmbracelet/crush/internal/fsext"
17 "github.com/charmbracelet/crush/internal/history"
18 "github.com/charmbracelet/crush/internal/history"
18 "github.com/charmbracelet/crush/internal/lsp"
19 "github.com/charmbracelet/crush/internal/lsp"
@@ -62,9 +63,7 @@ func NewMultiEditTool(lspClients *csync.Map[string, *lsp.Client], permissions pe
62 return fantasy.NewTextErrorResponse("at least one edit operation is required"), nil
63 return fantasy.NewTextErrorResponse("at least one edit operation is required"), nil
65− if !filepath.IsAbs(params.FilePath) {
66− params.FilePath = filepath.Join(workingDir, params.FilePath)
66+ params.FilePath = filepathext.SmartJoin(workingDir, params.FilePath)
69 // Validate all edits before applying any
68 // Validate all edits before applying any
70 if err := validateEdits(params.Edits); err != nil {
69 if err := validateEdits(params.Edits); err != nil {