@@ -6,7 +6,6 @@ import (
66 "slices"
77 "sync"
88
9− "github.com/charmbracelet/crush/internal/config"
109 "github.com/charmbracelet/crush/internal/pubsub"
1110 "github.com/google/uuid"
1211)
@@ -44,6 +43,7 @@ type Service interface {
4443type permissionService struct {
4544 *pubsub.Broker[PermissionRequest]
4645
46+ workingDir string
4747 sessionPermissions []PermissionRequest
4848 sessionPermissionsMu sync.RWMutex
4949 pendingRequests sync.Map
@@ -87,7 +87,7 @@ func (s *permissionService) Request(opts CreatePermissionRequest) bool {
8787
8888 dir := filepath.Dir(opts.Path)
8989 if dir == "." {
90− dir = config.Get().WorkingDir()
90+ dir = s.workingDir
9191 }
9292 permission := PermissionRequest{
9393 ID: uuid.New().String(),
@@ -125,9 +125,10 @@ func (s *permissionService) AutoApproveSession(sessionID string) {
125125 s.autoApproveSessionsMu.Unlock()
126126}
127127
128−func NewPermissionService() Service {
128+func NewPermissionService(workingDir string) Service {
129129 return &permissionService{
130130 Broker: pubsub.NewBroker[PermissionRequest](),
131+ workingDir: workingDir,
131132 sessionPermissions: make([]PermissionRequest, 0),
132133 }
133134}