gsxdsm
f1b6a6340c
Address review feedback: System panel hardening (#2028)
Correctness/reliability:
- engine restart-all: compensating pause on resume failure so a project
is never left marked active with a dead engine
- desktop restart: app.quit() (runs before-quit teardown) not app.exit(0)
- supervisor: SIGINT/SIGTERM during crash-backoff exit immediately;
stopping-latch prevents respawn after intentional shutdown
- coalesce concurrent /system/restart requests (restartScheduled guard)
- rebuild job completion chain given a .catch (no stranded activeJob)
Security:
- same-origin CSRF guard on all mutating /system/* POSTs (safe under
--no-auth / desktop)
- redact secrets in host-process log history (reuse core redactSecrets)
- report-bug: confirm before including server logs + escape ``` fences
- sanitize restart reason; Object.hasOwn scope-guard (prototype-key 500)
Frontend:
- log tail dedup (drop redundant REST backfill; SSE heartbeat stops 45s
reconnect churn) + X-Accel-Buffering:no on both SSE routes
- restart-wait 90s timeout re-enables controls
- hydrate buffered rebuild lines on mount (mid-build panel open)
Maintainability + tests:
- engineAvailable reflects centralCore; hoisted systemLogs option; typed
desktop systemControl DTO
- add tests: SSE routes, exit-86 respawn, compiled-binary respawn,
engine-restart recovery, log redaction
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 14:42:09 -07:00
..
2026-07-11 22:16:48 -07:00
2026-07-12 14:42:09 -07:00
2026-07-12 14:42:09 -07:00
2026-07-11 18:07:00 -07:00
2026-07-12 12:49:37 -07:00
2026-07-06 19:03:06 -07:00
2026-07-02 14:31:16 -07:00
2026-07-01 18:01:17 -07:00
2026-07-08 01:29:56 -07:00
2026-07-04 13:43:59 -07:00
2026-07-12 13:06:08 -07:00
2026-07-11 18:07:00 -07:00
2026-07-03 07:47:03 -07:00
2026-06-23 10:43:14 -07:00
2026-07-11 18:48:59 -07:00