summaryrefslogtreecommitdiffhomepage
path: root/packages/tui
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-31 16:51:55 -0400
committerDax Raad <[email protected]>2025-07-31 16:51:55 -0400
commit614a23698fcbdf89d8e5ccfee68c42b70633e7b6 (patch)
treebe50f4140ece089401b781024f93a38172ff72e3 /packages/tui
parenta2191ce6fb594526f66a551ee1654c0d871a34ca (diff)
downloadopencode-614a23698fcbdf89d8e5ccfee68c42b70633e7b6.tar.gz
opencode-614a23698fcbdf89d8e5ccfee68c42b70633e7b6.zip
wip: permissions
Diffstat (limited to 'packages/tui')
-rw-r--r--packages/tui/internal/components/chat/messages.go2
-rw-r--r--packages/tui/internal/tui/tui.go17
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: