diff options
| author | Dax Raad <[email protected]> | 2025-07-31 16:51:55 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-07-31 16:51:55 -0400 |
| commit | 614a23698fcbdf89d8e5ccfee68c42b70633e7b6 (patch) | |
| tree | be50f4140ece089401b781024f93a38172ff72e3 /packages/tui | |
| parent | a2191ce6fb594526f66a551ee1654c0d871a34ca (diff) | |
| download | opencode-614a23698fcbdf89d8e5ccfee68c42b70633e7b6.tar.gz opencode-614a23698fcbdf89d8e5ccfee68c42b70633e7b6.zip | |
wip: permissions
Diffstat (limited to 'packages/tui')
| -rw-r--r-- | packages/tui/internal/components/chat/messages.go | 2 | ||||
| -rw-r--r-- | packages/tui/internal/tui/tui.go | 17 |
2 files changed, 16 insertions, 3 deletions
diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go index db8e7cf66..a4e861d6a 100644 --- a/packages/tui/internal/components/chat/messages.go +++ b/packages/tui/internal/components/chat/messages.go @@ -200,7 +200,7 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case opencode.EventListResponseEventPermissionUpdated: m.tail = true return m, m.renderView() - case app.PermissionRespondedToMsg: + case opencode.EventListResponseEventPermissionReplied: m.tail = true return m, m.renderView() case renderCompleteMsg: diff --git a/packages/tui/internal/tui/tui.go b/packages/tui/internal/tui/tui.go index 3d08c2afa..f108971da 100644 --- a/packages/tui/internal/tui/tui.go +++ b/packages/tui/internal/tui/tui.go @@ -143,7 +143,7 @@ func (a Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return toast.NewErrorToast("Failed to respond to permission request") } slog.Debug("Responded to permission request", "response", resp) - return app.PermissionRespondedToMsg{Response: response} + return nil } } } @@ -522,8 +522,21 @@ func (a Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { slog.Debug("permission updated", "session", msg.Properties.SessionID, "permission", msg.Properties.ID) a.app.Permissions = append(a.app.Permissions, msg.Properties) a.app.CurrentPermission = a.app.Permissions[0] - cmds = append(cmds, toast.NewInfoToast(msg.Properties.Title, toast.WithTitle("Permission requested"))) a.editor.Blur() + case opencode.EventListResponseEventPermissionReplied: + index := slices.IndexFunc(a.app.Permissions, func(p opencode.Permission) bool { + return p.ID == msg.Properties.PermissionID + }) + if index > -1 { + a.app.Permissions = append(a.app.Permissions[:index], a.app.Permissions[index+1:]...) + } + if a.app.CurrentPermission.ID == msg.Properties.PermissionID { + if len(a.app.Permissions) > 0 { + a.app.CurrentPermission = a.app.Permissions[0] + } else { + a.app.CurrentPermission = opencode.Permission{} + } + } case opencode.EventListResponseEventSessionError: switch err := msg.Properties.Error.AsUnion().(type) { case nil: |
