@@ -6,7 +6,6 @@ import (
9− "github.com/charmbracelet/crush/internal/config"
10 "github.com/charmbracelet/crush/internal/pubsub"
9 "github.com/charmbracelet/crush/internal/pubsub"
11 "github.com/google/uuid"
10 "github.com/google/uuid"
@@ -44,6 +43,7 @@ type Service interface {
44type permissionService struct {
43type permissionService struct {
45 *pubsub.Broker[PermissionRequest]
44 *pubsub.Broker[PermissionRequest]
47 sessionPermissions []PermissionRequest
47 sessionPermissions []PermissionRequest
48 sessionPermissionsMu sync.RWMutex
48 sessionPermissionsMu sync.RWMutex
49 pendingRequests sync.Map
49 pendingRequests sync.Map
@@ -87,7 +87,7 @@ func (s *permissionService) Request(opts CreatePermissionRequest) bool {
88 dir := filepath.Dir(opts.Path)
88 dir := filepath.Dir(opts.Path)
89 if dir == "." {
89 if dir == "." {
90− dir = config.Get().WorkingDir()
90+ dir = s.workingDir
92 permission := PermissionRequest{
92 permission := PermissionRequest{
93 ID: uuid.New().String(),
93 ID: uuid.New().String(),
@@ -125,9 +125,10 @@ func (s *permissionService) AutoApproveSession(sessionID string) {
125 s.autoApproveSessionsMu.Unlock()
125 s.autoApproveSessionsMu.Unlock()
128−func NewPermissionService() Service {
128+func NewPermissionService(workingDir string) Service {
129 return &permissionService{
129 return &permissionService{
130 Broker: pubsub.NewBroker[PermissionRequest](),
130 Broker: pubsub.NewBroker[PermissionRequest](),
131+ workingDir: workingDir,
131 sessionPermissions: make([]PermissionRequest, 0),
132 sessionPermissions: make([]PermissionRequest, 0),