summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx2
-rw-r--r--packages/tauri/src-tauri/src/lib.rs19
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 {