diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx | 2 | ||||
| -rw-r--r-- | packages/tauri/src-tauri/src/lib.rs | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx index 6fde66944..36e191e1a 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx @@ -357,7 +357,7 @@ export function Autocomplete(props: { const options = createMemo(() => { const mixed: AutocompleteOption[] = ( - store.visible === "@" ? [...agents(), ...(files.loading ? files.latest || [] : files())] : [...commands()] + store.visible === "@" ? [...agents(), ...(files() || [])] : [...commands()] ).filter((x) => x.disabled !== true) const currentFilter = filter() if (!currentFilter) return mixed.slice(0, 10) diff --git a/packages/tauri/src-tauri/src/lib.rs b/packages/tauri/src-tauri/src/lib.rs index 02730281f..e06eff7fc 100644 --- a/packages/tauri/src-tauri/src/lib.rs +++ b/packages/tauri/src-tauri/src/lib.rs @@ -49,7 +49,12 @@ fn get_sidecar_port() -> u16 { }) } +fn get_user_shell() -> String { + std::env::var("SHELL").unwrap_or_else(|_| "/bin/sh".to_string()) +} + fn spawn_sidecar(app: &AppHandle, port: u16) -> CommandChild { + #[cfg(target_os = "windows")] let (mut rx, child) = app .shell() .sidecar("opencode-cli") @@ -60,6 +65,20 @@ fn spawn_sidecar(app: &AppHandle, port: u16) -> CommandChild { .spawn() .expect("Failed to spawn opencode"); + #[cfg(not(target_os = "windows"))] + let (mut rx, child) = { + let sidecar = app.shell().sidecar("opencode-cli").unwrap(); + let sidecar_path = sidecar.get_program().to_string_lossy(); + let shell = get_user_shell(); + app.shell() + .command(&shell) + .env("OPENCODE_EXPERIMENTAL_ICON_DISCOVERY", "true") + .env("OPENCODE_CLIENT", "desktop") + .args(["-l", "-c", &format!("{} serve --port={}", sidecar_path, port)]) + .spawn() + .expect("Failed to spawn opencode") + }; + tauri::async_runtime::spawn(async move { while let Some(event) = rx.recv().await { match event { |
