diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx index 36ef66d5..7d0366aa 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx @@ -96,7 +96,7 @@ function init() { const textEditingKey = textInputFocused && isTextEditingKey(evt) for (const option of entries()) { if (!isEnabled(option)) continue - if (textEditingKey && !option.keybind?.startsWith("input_")) continue + if (textEditingKey && !option.keybind?.startsWith("input_") && !option.keybind?.startsWith("")) continue if (option.keybind && keybind.match(option.keybind, evt)) { evt.preventDefault() option.onSelect?.(dialog) diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index 71acf5e6..6f79374d 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -382,7 +382,7 @@ export const BashTool = Tool.define( }) const argPath = Effect.fn("BashTool.argPath")(function* (arg: string, cwd: string, ps: boolean, shell: string) { - const text = ps ? expand(arg, cwd, shell) : home(unquote(arg)) + const text = expand(home(unquote(arg)), cwd, shell) const file = text && prefix(text) if (!file || dynamic(file, ps)) return const next = ps ? provider(file) : file