summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoradamdotdevin <[email protected]>2025-07-31 11:36:08 -0500
committeradamdotdevin <[email protected]>2025-07-31 11:36:08 -0500
commit936f4cb0c661cd48718fb5cd7dace646f9e10715 (patch)
tree80ff1e7c2352f663376d34276416e78a2bddf45e
parenta5b20f973fb575ba25256c1b3cb13b03bea96fa1 (diff)
downloadopencode-936f4cb0c661cd48718fb5cd7dace646f9e10715.tar.gz
opencode-936f4cb0c661cd48718fb5cd7dace646f9e10715.zip
fix: permission state hangs
-rw-r--r--packages/tui/internal/app/app.go3
-rw-r--r--packages/tui/internal/components/chat/messages.go3
-rw-r--r--packages/tui/internal/tui/tui.go3
3 files changed, 7 insertions, 2 deletions
diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go
index 672bc0ee6..7ef31fd54 100644
--- a/packages/tui/internal/app/app.go
+++ b/packages/tui/internal/app/app.go
@@ -75,6 +75,9 @@ type SetEditorContentMsg struct {
type FileRenderedMsg struct {
FilePath string
}
+type PermissionRespondedToMsg struct {
+ Response opencode.SessionPermissionRespondParamsResponse
+}
func New(
ctx context.Context,
diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go
index 412d2c4c0..db8e7cf66 100644
--- a/packages/tui/internal/components/chat/messages.go
+++ b/packages/tui/internal/components/chat/messages.go
@@ -200,6 +200,9 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case opencode.EventListResponseEventPermissionUpdated:
m.tail = true
return m, m.renderView()
+ case app.PermissionRespondedToMsg:
+ m.tail = true
+ return m, m.renderView()
case renderCompleteMsg:
m.partCount = msg.partCount
m.lineCount = msg.lineCount
diff --git a/packages/tui/internal/tui/tui.go b/packages/tui/internal/tui/tui.go
index 0b87872fa..3d08c2afa 100644
--- a/packages/tui/internal/tui/tui.go
+++ b/packages/tui/internal/tui/tui.go
@@ -121,7 +121,6 @@ func (a Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
} else {
a.app.CurrentPermission = opencode.Permission{}
}
-
response := opencode.SessionPermissionRespondParamsResponseOnce
switch keyString {
case "enter":
@@ -144,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 nil
+ return app.PermissionRespondedToMsg{Response: response}
}
}
}