feat(servel): Phase 8 v1.1.0 — update checker + tray quick-switch + port conflict#9
Merged
Merged
Conversation
Command check_port_conflicts memprobe host port (bind TcpListener 127.0.0.1) tiap service yang akan di-start, exclude service yang sudah running agar port container servel sendiri tak terhitung konflik. Portable lintas-OS tanpa parse netstat. Identifikasi nama proses pemegang port di-descope. devhardiyanto
start() memprobe check_port_conflicts untuk service baru; kalau ada port yang dipakai proses lain, tampilkan banner amber (service+port) dengan aksi "Tetap mulai" (force, lewati probe) / "Tutup". Tak start diam-diam. devhardiyanto
Cek rilis stable terbaru (/releases/latest) saat launch + tombol manual di Settings > About. Banner "versi baru tersedia" + link ke halaman rilis bila lebih baru dari versi app. compareSemver menangani suffix prerelease. CSP connect-src ditambah https://api.github.com. Tanpa background polling. devhardiyanto
Submenu PHP & Node di tray menu, di-populate async dari php_list_installed/
node_list_installed (versi aktif ditandai ●) via set_menu. Klik item emit
event tray-switch-version {kind,version}; usePhp/useNode listen → reuse
switchTo (update active + persist config). Listener aktif saat view pemilik
(Dashboard) mounted.
devhardiyanto
devhardiyanto
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Phase 8 (v1.1.0) — tiga fitur quality-of-life post-MVP: update checker, tray quick-switch versi PHP/Node, dan deteksi konflik port sebelum start service.
Why
MVP v1.0 sudah shippable; ini enhancement opsional pertama di jalur v1.1. Ketiganya low-risk & additive (tak mengubah kontrak
config.json) — cocok digabung 1 rilis bersih. Multiple profiles (M9) sengaja ditunda ke sprint sendiri karena mengubah skema config.How
check_port_conflictsmemprobe host port tiap service viaTcpListener::bind(portable lintas-OS, tanpa parsenetstat), meng-exclude service yang sudah running agar port container servel sendiri tak terhitung konflik. Frontendstart()cek dulu → banner amber (service + port) dengan aksi "Tetap mulai" / "Tutup"; tak start diam-diam.useUpdateCheckfetchGET /releases/latest(channel stable) saat launch + tombol manual di Settings › About. Banner "versi baru tersedia" + link rilis bila lebih baru.compareSemvermenangani suffix prerelease. CSPconnect-src+https://api.github.com. Tanpa background polling.php_list_installed/node_list_installed(versi aktif ditandai ●) viaset_menu. Klik item → emit eventtray-switch-version {kind,version};usePhp/useNodelisten → reuseswitchTo(update active + persist config).Changes
commands/services.rs,lib.rscheck_port_conflicts/probe_host_port+ 2 testuseServices.ts,types/service.ts,Dashboard.vueuseUpdateCheck.ts(baru),Settings.vue,App.vuetauri.conf.jsontray.rsusePhp.ts,useNode.tstray-switch-version→switchTopackage.json,package-lock.json,Cargo.toml,Cargo.lock,tauri.conf.json1.0.0-beta.4→1.1.0Verifikasi
cargo test58 pass (2 baru) ·vue-tsc --noEmit✓ ·npm run tauri buildsukses →Servel_1.1.0_x64-setup.exe.Batasan diketahui
netstat/ssper-OS — descoped demi portabilitas)./releases/latestmasih 404 selama semua rilis = prerelease).Footer: devhardiyanto