on main help sign in
chore: make permissions config independent
commit5936ae83e9437e8caf7741f9e1e7e9b1dd37675b authorKujtim Hoxha <kujtimii.h@gmail.com> dateSat 5 Jul 2025, 17:34 (1 year ago) parent97e5e87
2 files changed+7−6
internal/app/app.go+3−3 internal/permission/permission.go+4−3
internal/app/app.go+3−3
@@ -45,19 +45,19 @@ func New(ctx context.Context, conn *sql.DB) (*App, error) {
4545 messages := message.NewService(q)
4646 files := history.NewService(q, conn)
4747
48+ cfg := config.Get()
49+
4850 app := &App{
4951 Sessions: sessions,
5052 Messages: messages,
5153 History: files,
52− Permissions: permission.NewPermissionService(),
54+ Permissions: permission.NewPermissionService(cfg.WorkingDir()),
5355 LSPClients: make(map[string]*lsp.Client),
5456 }
5557
5658 // Initialize LSP clients in the background
5759 go app.initLSPClients(ctx)
5860
59− cfg := config.Get()
60−
6161 // TODO: remove the concept of agent config most likely
6262 coderAgentCfg := cfg.Agents["coder"]
6363 if coderAgentCfg.ID == "" {
internal/permission/permission.go+4−3
@@ -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}