@@ -11,6 +11,7 @@ import (
13 "github.com/charmbracelet/crush/internal/diff"
13 "github.com/charmbracelet/crush/internal/diff"
14+ "github.com/charmbracelet/crush/internal/fsext"
14 "github.com/charmbracelet/crush/internal/history"
15 "github.com/charmbracelet/crush/internal/history"
16 "github.com/charmbracelet/crush/internal/lsp"
17 "github.com/charmbracelet/crush/internal/lsp"
@@ -215,14 +216,10 @@ func (e *editTool) createNewFile(ctx context.Context, filePath, content string,
216 strings.TrimPrefix(filePath, e.workingDir),
217 strings.TrimPrefix(filePath, e.workingDir),
218− permissionPath := filePath
219− if strings.HasPrefix(filePath, e.workingDir) {
220− permissionPath = e.workingDir
222 p := e.permissions.Request(
219 p := e.permissions.Request(
223 permission.CreatePermissionRequest{
220 permission.CreatePermissionRequest{
224 SessionID: sessionID,
221 SessionID: sessionID,
225− Path: permissionPath,
222+ Path: fsext.PathOrPrefix(filePath, e.workingDir),
226 ToolCallID: call.ID,
223 ToolCallID: call.ID,
227 ToolName: EditToolName,
224 ToolName: EditToolName,
228 Action: "write",
225 Action: "write",
@@ -340,15 +337,10 @@ func (e *editTool) deleteContent(ctx context.Context, filePath, oldString string
340 strings.TrimPrefix(filePath, e.workingDir),
337 strings.TrimPrefix(filePath, e.workingDir),
343− permissionPath := filePath
344− if strings.HasPrefix(filePath, e.workingDir) {
345− permissionPath = e.workingDir
348 p := e.permissions.Request(
340 p := e.permissions.Request(
349 permission.CreatePermissionRequest{
341 permission.CreatePermissionRequest{
350 SessionID: sessionID,
342 SessionID: sessionID,
351− Path: permissionPath,
343+ Path: fsext.PathOrPrefix(filePath, e.workingDir),
352 ToolCallID: call.ID,
344 ToolCallID: call.ID,
353 ToolName: EditToolName,
345 ToolName: EditToolName,
354 Action: "write",
346 Action: "write",
@@ -476,14 +468,10 @@ func (e *editTool) replaceContent(ctx context.Context, filePath, oldString, newS
476 strings.TrimPrefix(filePath, e.workingDir),
468 strings.TrimPrefix(filePath, e.workingDir),
479− permissionPath := filePath
480− if strings.HasPrefix(filePath, e.workingDir) {
481− permissionPath = e.workingDir
483 p := e.permissions.Request(
471 p := e.permissions.Request(
484 permission.CreatePermissionRequest{
472 permission.CreatePermissionRequest{
485 SessionID: sessionID,
473 SessionID: sessionID,
486− Path: permissionPath,
474+ Path: fsext.PathOrPrefix(filePath, e.workingDir),
487 ToolCallID: call.ID,
475 ToolCallID: call.ID,
488 ToolName: EditToolName,
476 ToolName: EditToolName,
489 Action: "write",
477 Action: "write",