diff options
| author | Dax Raad <[email protected]> | 2025-12-16 13:37:22 -0500 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-12-16 13:37:22 -0500 |
| commit | 83bcb9e95bcbdd8f4f9e53a0d8fa44f3f51b6c6e (patch) | |
| tree | 67b0d1aa17b0b43bb7e1976e234b7785af47a8f0 /packages | |
| parent | 96b9ff8d0ea7a6d8c0790e793ea2ee700a435792 (diff) | |
| download | opencode-83bcb9e95bcbdd8f4f9e53a0d8fa44f3f51b6c6e.tar.gz opencode-83bcb9e95bcbdd8f4f9e53a0d8fa44f3f51b6c6e.zip | |
tui: fix autocomplete file loading and update dependencies
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 { |
