Skip to content

Phase 7 — v1.0.0-beta.3: restart robustness + persistence fixes#7

Merged
devhardiyanto merged 1 commit into
mainfrom
phase-7
Jun 20, 2026
Merged

Phase 7 — v1.0.0-beta.3: restart robustness + persistence fixes#7
devhardiyanto merged 1 commit into
mainfrom
phase-7

Conversation

@devhardiyanto

Copy link
Copy Markdown
Owner

Polish iteration dari beta tester feedback (self-test pasca beta.2) — 2 bug terpisah saat restart PC.

Bug A — Popup docker.exe / wsl.exe saat restart (intermittent)

Polling loop nge-spawn docker.exe/docker stats di window rapuh (boot sebelum daemon ready + teardown) → loader-error popup. Bukti log: docker daemon recovered ~10s setelah app start.

  • A1 Gate stats polling via Arc<AtomicBool> daemon_ready — skip spawn docker stats saat daemon down.
  • A2 SetErrorMode(SEM_FAILCRITICALERRORS|NOGPFAULT|NOOPENFILE) di startup — suppress hard-error popup dari child docker.exe (inherit error mode). Dep: windows-sys 0.59.
  • A3 build().run(RunEvent) set shutting_down → kedua loop break saat exit/session-end, hindari spawn saat teardown.

Known limitation: popup wsl.exe yang bersumber dari Docker Desktop sendiri (bukan child Servel) tidak bisa di-suppress dari sini. Mitigasi user: wsl --update.

Bug B — Service "up" tapi switch "false" setelah restart

  • B1 (frontend) reconcileSelectedWithRunning() — OR selected dengan container yang running saat load. Container auto-restart (restart: unless-stopped) pasca reboot tampil ON tanpa toggle manual. Tak memicu start/stop.
  • B2 (tauri) config_write fsync file sebelum rename (+ fsync dir parent unix) — cegah config.json truncated saat hard restart yang bikin selection hilang.

Carry

  • Node20 actions deprecation: checkout v4→v5, setup-node v4→v6, cache v4→v5, upload-artifact v4→v7.

Version

Bump 1.0.0-beta.3 (package.json, Cargo.toml, tauri.conf.json, Cargo.lock).

Verifikasi

  • cargo check --target x86_64-pc-windows-msvc PASS untuk seluruh kode app (full cargo test/build tervalidasi CI 3-OS di PR ini).
  • Frontend: review manual (vue-tsc tooling tak tersedia di sandbox).
  • Config write: write_config_atomic roundtrip test ditambah.

…e fixes

- frontend: rekonsiliasi switch dgn container running saat load (Bug B1) —
  service auto-restart pasca reboot tampil ON tanpa toggle manual
- tauri(config): fsync file sebelum rename cegah config truncated saat hard restart (Bug B2)
- tauri(polling): gate stats loop via daemon_ready — skip spawn docker stats saat daemon down
- tauri(windows): SetErrorMode suppress loader popup docker.exe child saat WSL boot/teardown
- tauri(lifecycle): build().run(RunEvent) stop polling on exit — hindari spawn saat teardown
- ci: bump deprecated Node20 actions (checkout v5, setup-node v6, cache v5, upload-artifact v7)
- chore: bump versi 1.0.0-beta.3
@devhardiyanto
devhardiyanto merged commit ffbd628 into main Jun 20, 2026
3 checks passed
@devhardiyanto
devhardiyanto deleted the phase-7 branch June 20, 2026 12:05
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