9router-imagefix 0.5.113 → 0.5.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +3 -3
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +3 -3
- package/app/.next-cli-build/server/chunks/4037.js +1 -1
- package/app/.next-cli-build/server/chunks/827.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8847.js +1 -1
- package/app/.next-cli-build/server/chunks/8908.js +1 -1
- package/app/.next-cli-build/server/chunks/929.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/chunks/{1321-001c6b0c5547503f.js → 1321-dde8cc015701c424.js} +1 -1
- package/app/cli/.build-home/AppData/Roaming/9router/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/9router/db/data.sqlite-wal +0 -0
- package/app/package.json +1 -1
- package/cli.js +64 -0
- package/package.json +1 -1
- /package/app/.next-cli-build/static/{fMIuttQ13oA2DWAGzd9Gy → 7jhX5JgVR0iLdPGPXKGND}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{fMIuttQ13oA2DWAGzd9Gy → 7jhX5JgVR0iLdPGPXKGND}/_ssgManifest.js +0 -0
|
Binary file
|
|
Binary file
|
package/app/package.json
CHANGED
package/cli.js
CHANGED
|
@@ -675,6 +675,10 @@ function startServer(updatePromise) {
|
|
|
675
675
|
|
|
676
676
|
// Suppress all errors during shutdown (systray lib throws JSON parse errors)
|
|
677
677
|
let isShuttingDown = false;
|
|
678
|
+
// Serah terima ke tray sedang berjalan: server memang dimatikan, tapi proses
|
|
679
|
+
// CLI ini HARUS tetap hidup untuk men-spawn tray. Berbeda dari isShuttingDown,
|
|
680
|
+
// yang berarti "keluar sekarang".
|
|
681
|
+
let isHandingOff = false;
|
|
678
682
|
process.on("uncaughtException", (err) => {
|
|
679
683
|
if (isShuttingDown) return;
|
|
680
684
|
console.error("Error:", err.message);
|
|
@@ -810,6 +814,10 @@ function startServer(updatePromise) {
|
|
|
810
814
|
// dengan --skip-kill supaya ia tidak memindai/membunuh apa pun.
|
|
811
815
|
console.log(`\n⏳ Switching to background...`);
|
|
812
816
|
|
|
817
|
+
// `isHandingOff` HARUS diset sebelum cleanup(): SIGKILL memicu event
|
|
818
|
+
// "close" secara asinkron, dan tanpa penjagaan itu handler-nya
|
|
819
|
+
// memanggil process.exit() sebelum tray sempat di-spawn.
|
|
820
|
+
isHandingOff = true;
|
|
813
821
|
isShuttingDown = true;
|
|
814
822
|
cleanup();
|
|
815
823
|
// Tunggu port benar-benar bebas; spawn sebelum ini membuat tray
|
|
@@ -825,6 +833,43 @@ function startServer(updatePromise) {
|
|
|
825
833
|
});
|
|
826
834
|
bgProcess.unref();
|
|
827
835
|
|
|
836
|
+
// VERIFIKASI — jangan langsung menganggap tray berhasil.
|
|
837
|
+
//
|
|
838
|
+
// Server lama sudah dibunuh di atas; satu-satunya yang menyalakannya
|
|
839
|
+
// kembali adalah proses tray. Kalau tray gagal (PowerShell NotifyIcon
|
|
840
|
+
// tidak tersedia, crash saat start, port belum benar-benar bebas),
|
|
841
|
+
// pengguna ditinggal dengan gateway MATI dan tidak ada yang tahu.
|
|
842
|
+
// Inilah keluhan "Hide to Tray malah jadi mati".
|
|
843
|
+
//
|
|
844
|
+
// Jadi: tunggu sampai server benar-benar hidup. Kalau tidak, pulihkan
|
|
845
|
+
// di proses ini dan kembali ke menu — jangan keluar.
|
|
846
|
+
const trayBerhasil = await waitServerReady(port, { timeoutMs: 25000, intervalMs: 400 });
|
|
847
|
+
|
|
848
|
+
if (!trayBerhasil) {
|
|
849
|
+
console.log(`\n⚠️ Tray gagal menyalakan server — memulihkan di terminal ini.`);
|
|
850
|
+
// cleanup() sudah menandai keduanya; reset supaya server bisa
|
|
851
|
+
// dijalankan lagi dan cleanup berikutnya tetap bekerja.
|
|
852
|
+
isHandingOff = false;
|
|
853
|
+
isCleaningUp = false;
|
|
854
|
+
isShuttingDown = false;
|
|
855
|
+
try {
|
|
856
|
+
server = spawnServer();
|
|
857
|
+
attachServerEvents();
|
|
858
|
+
} catch (e) {
|
|
859
|
+
console.error("Gagal memulihkan server:", e.message);
|
|
860
|
+
}
|
|
861
|
+
const pulih = await waitServerReady(port, { timeoutMs: 20000, intervalMs: 400 });
|
|
862
|
+
if (pulih) {
|
|
863
|
+
console.log(`✅ Server kembali jalan: http://${displayHost}:${port}`);
|
|
864
|
+
console.log(` Tray tidak aktif — pilih "Hide to Tray" lagi untuk mencoba ulang.\n`);
|
|
865
|
+
} else {
|
|
866
|
+
console.log(`❌ Server juga gagal dijalankan ulang. Cek log:`);
|
|
867
|
+
console.log(` ${path.join(process.env.APPDATA || "", "9router", "logs", "server-restarts.log")}\n`);
|
|
868
|
+
}
|
|
869
|
+
// Jangan process.exit — biarkan loop menu hidup.
|
|
870
|
+
continue;
|
|
871
|
+
}
|
|
872
|
+
|
|
828
873
|
console.log(`🔔 9Router is now running in background (PID: ${bgProcess.pid})`);
|
|
829
874
|
console.log(` Server: http://${displayHost}:${port}`);
|
|
830
875
|
console.log(`\n💡 You can close this terminal. Right-click tray icon to quit.\n`);
|
|
@@ -866,11 +911,30 @@ function startServer(updatePromise) {
|
|
|
866
911
|
function attachServerEvents() {
|
|
867
912
|
server.on("error", (err) => {
|
|
868
913
|
console.error("Failed to start server:", err.message);
|
|
914
|
+
// Serah terima ke tray: server memang sedang dimatikan, dan proses CLI
|
|
915
|
+
// ini TIDAK boleh keluar — ia masih harus men-spawn tray di bawah.
|
|
916
|
+
if (isHandingOff) return;
|
|
869
917
|
if (!isShuttingDown) tryRestart();
|
|
870
918
|
else { cleanup(); process.exit(1); }
|
|
871
919
|
});
|
|
872
920
|
|
|
873
921
|
server.on("close", (code) => {
|
|
922
|
+
// SERAH TERIMA KE TRAY — jangan keluar.
|
|
923
|
+
//
|
|
924
|
+
// Ini akar bug "Hide to Tray malah jadi mati". Urutannya:
|
|
925
|
+
// isShuttingDown = true; cleanup(); ← SIGKILL server
|
|
926
|
+
// await killProcessOnPort(port); ← melepas kontrol ke event loop
|
|
927
|
+
// ... ← event "close" menyala DI SINI
|
|
928
|
+
// spawn(... tray ...); ← tidak pernah tercapai
|
|
929
|
+
//
|
|
930
|
+
// Handler ini dulu melihat isShuttingDown === true lalu memanggil
|
|
931
|
+
// process.exit(), sehingga CLI mati sebelum sempat men-spawn tray:
|
|
932
|
+
// server sudah dibunuh, tray tidak pernah lahir → gateway mati total.
|
|
933
|
+
//
|
|
934
|
+
// Penjagaan ini harus TERPISAH dari isShuttingDown, karena pada jalur
|
|
935
|
+
// hide kita memang mematikan server tapi TIDAK ingin CLI ikut berhenti.
|
|
936
|
+
if (isHandingOff) return;
|
|
937
|
+
|
|
874
938
|
if (isShuttingDown) {
|
|
875
939
|
// Benar-benar diminta berhenti (SIGINT/SIGTERM/tray quit/menu Exit).
|
|
876
940
|
process.exit(code || 0);
|
package/package.json
CHANGED
|
File without changes
|
/package/app/.next-cli-build/static/{fMIuttQ13oA2DWAGzd9Gy → 7jhX5JgVR0iLdPGPXKGND}/_ssgManifest.js
RENAMED
|
File without changes
|