diff options
| author | adamdotdevin <[email protected]> | 2025-07-31 11:36:08 -0500 |
|---|---|---|
| committer | adamdotdevin <[email protected]> | 2025-07-31 11:36:08 -0500 |
| commit | 936f4cb0c661cd48718fb5cd7dace646f9e10715 (patch) | |
| tree | 80ff1e7c2352f663376d34276416e78a2bddf45e | |
| parent | a5b20f973fb575ba25256c1b3cb13b03bea96fa1 (diff) | |
| download | opencode-936f4cb0c661cd48718fb5cd7dace646f9e10715.tar.gz opencode-936f4cb0c661cd48718fb5cd7dace646f9e10715.zip | |
fix: permission state hangs
| -rw-r--r-- | packages/tui/internal/app/app.go | 3 | ||||
| -rw-r--r-- | packages/tui/internal/components/chat/messages.go | 3 | ||||
| -rw-r--r-- | packages/tui/internal/tui/tui.go | 3 |
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} } } } |
