Skip to content

fix: onboarding Linux/macOS — resolusi PATH GUI-launched app + instruksi platform-aware (v1.4.3)#13

Merged
devhardiyanto merged 4 commits into
mainfrom
fix/linux-macos-onboarding-path
Jul 25, 2026
Merged

fix: onboarding Linux/macOS — resolusi PATH GUI-launched app + instruksi platform-aware (v1.4.3)#13
devhardiyanto merged 4 commits into
mainfrom
fix/linux-macos-onboarding-path

Conversation

@devhardiyanto

Copy link
Copy Markdown
Owner

What

Perbaiki onboarding di Linux & macOS: tool yang sudah terpasang kini terdeteksi, dan instruksi prasyarat menyesuaikan OS. Bump versi → 1.4.3.

Why

Servel Windows-first. Di Linux/macOS onboarding bermasalah:

  • phpvm/fnm "installed tapi tak terdeteksi" — AppImage/.app yang dilaunch dari desktop launcher tidak mewarisi PATH shell interaktif, sehingga tool yang di-install via shell rc (~/.local/bin, dir fnm/phpvm) tak ketemu saat di-spawn.
  • Perintah install fnm salah — hard-coded winget install Schniz.fnm (Windows-only) untuk semua OS.
  • Guidance Docker Windows-centric — asumsi Docker Desktop; Linux pakai Engine + systemctl.

Root cause PATH identik di Linux & macOS, jadi satu patch menutup keduanya.

How

  • PATH resolution (util.rs): silent_command non-Windows meng-inject PATH hasil resolusi login-interactive shell ($SHELL -lic, timeout 5s, cached via OnceLock) ∪ PATH proses ∪ dir install umum. Semua spawn tool eksternal (phpvm, fnm, docker di prereq/services/stats) lewat jalur ini.
  • get_platform command (prereq.rs): kembalikan "windows"/"macos"/"linux" untuk UI.
  • Onboarding platform-aware (Onboarding.vue): perintah install fnm per-OS (winget/brew/curl), actions Docker per-OS, dan pada Linux tampilkan systemctl start docker langsung (tombol Start Docker disembunyikan).

Changes

  • src-tauri/src/commands/util.rs — helper resolusi PATH + silent_command inject PATH (non-Windows).
  • src-tauri/src/commands/prereq.rsprobe_version via silent_command; command get_platform.
  • src-tauri/src/commands/services.rs, stats.rs — docker spawn via silent_command.
  • src-tauri/src/lib.rs — register get_platform.
  • src/views/Onboarding.vue — instruksi prasyarat platform-aware.
  • package.json, Cargo.toml, tauri.conf.json, Cargo.lock — v1.4.3.

Testing

  • cargo check ✓ · vue-tsc --noEmit
  • Verifikasi empiris di Linux/macOS (deteksi phpvm/fnm setelah install) belum dijalankan di CI — perlu smoke-test manual pada AppImage/.app hasil build.

devhardiyanto

AppImage/.app yang dilaunch dari desktop launcher tidak mewarisi PATH shell
interaktif, sehingga tool yang di-install via shell rc (fnm, phpvm) tak
terdeteksi walau sudah terpasang. Tambah resolusi PATH via login-interactive
shell (timeout 5s, cached) + merge dir install umum, diterapkan di
silent_command. Route probe_version + docker spawn (services, stats) lewat
silent_command agar konsisten.

devhardiyanto
Command get_platform() mengembalikan "windows"/"macos"/"linux" via cfg,
dipakai frontend untuk menampilkan instruksi prasyarat sesuai OS.

devhardiyanto
Instruksi prasyarat sebelumnya hard-coded Windows. Sekarang ambil OS via
get_platform: perintah install fnm per-OS (winget/brew/curl), actions Docker
per-OS (Linux=Docker Engine + post-install, macOS=Desktop), dan pada Linux
tampilkan instruksi `systemctl start docker` langsung (sembunyikan tombol
Start Docker yang tak berlaku).

devhardiyanto
Patch onboarding Linux/macOS: resolusi PATH GUI-launched app + instruksi
prasyarat platform-aware.

devhardiyanto
@devhardiyanto
devhardiyanto merged commit 32c024a into main Jul 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant