@@ -11,6 +11,7 @@ import (
1111 "time"
1212
1313 "github.com/charmbracelet/crush/internal/diff"
14+ "github.com/charmbracelet/crush/internal/fsext"
1415 "github.com/charmbracelet/crush/internal/history"
1516
1617 "github.com/charmbracelet/crush/internal/lsp"
@@ -215,14 +216,10 @@ func (e *editTool) createNewFile(ctx context.Context, filePath, content string,
215216 content,
216217 strings.TrimPrefix(filePath, e.workingDir),
217218 )
218− permissionPath := filePath
219− if strings.HasPrefix(filePath, e.workingDir) {
220− permissionPath = e.workingDir
221− }
222219 p := e.permissions.Request(
223220 permission.CreatePermissionRequest{
224221 SessionID: sessionID,
225− Path: permissionPath,
222+ Path: fsext.PathOrPrefix(filePath, e.workingDir),
226223 ToolCallID: call.ID,
227224 ToolName: EditToolName,
228225 Action: "write",
@@ -340,15 +337,10 @@ func (e *editTool) deleteContent(ctx context.Context, filePath, oldString string
340337 strings.TrimPrefix(filePath, e.workingDir),
341338 )
342339
343− permissionPath := filePath
344− if strings.HasPrefix(filePath, e.workingDir) {
345− permissionPath = e.workingDir
346− }
347−
348340 p := e.permissions.Request(
349341 permission.CreatePermissionRequest{
350342 SessionID: sessionID,
351− Path: permissionPath,
343+ Path: fsext.PathOrPrefix(filePath, e.workingDir),
352344 ToolCallID: call.ID,
353345 ToolName: EditToolName,
354346 Action: "write",
@@ -476,14 +468,10 @@ func (e *editTool) replaceContent(ctx context.Context, filePath, oldString, newS
476468 strings.TrimPrefix(filePath, e.workingDir),
477469 )
478470
479− permissionPath := filePath
480− if strings.HasPrefix(filePath, e.workingDir) {
481− permissionPath = e.workingDir
482− }
483471 p := e.permissions.Request(
484472 permission.CreatePermissionRequest{
485473 SessionID: sessionID,
486− Path: permissionPath,
474+ Path: fsext.PathOrPrefix(filePath, e.workingDir),
487475 ToolCallID: call.ID,
488476 ToolName: EditToolName,
489477 Action: "write",