chore: dev-stack switches, shared e2e harness, and desktop shell rules

- `LIVE_RELOAD=false npm run dev` keeps the renderer alive across a machine
  suspend; the reload client otherwise destroys the session under test.
- `dev-peer.sh` plus a separate userdata dir runs a second local peer.
- `tools/voice-probe.js` samples peer state and RTP counters from a live
  window, persisting to localStorage so a renderer reload cannot erase it.
- e2e helpers for voice pairs, peer-role election, and a TURN relay.
- Electron single-instance and dev-client-load decisions move into rules
  files with colocated specs.
This commit is contained in:
2026-08-14 03:19:29 +02:00
parent d71e3a98da
commit e49b3ec112
41 changed files with 35947 additions and 50 deletions
+14 -2
View File
@@ -12,6 +12,18 @@ if [ -f "$DIR/.env" ]; then
fi
SSL="${SSL:-false}"
LIVE_RELOAD="${LIVE_RELOAD:-true}"
# Suspending the machine tears down the dev-server connection. The live-reload client
# answers the reconnect by reloading the page, which destroys the very session under
# test (voice call, peer connections, console state). Set LIVE_RELOAD=false to keep the
# renderer alive across a suspend. Editing client files then has no effect until restart.
NG_RELOAD_FLAG=""
if [ "$LIVE_RELOAD" != "true" ]; then
NG_RELOAD_FLAG=" --live-reload=false"
echo "Live reload disabled: client edits will NOT reach the running window."
fi
if [ "$SSL" = "true" ]; then
# Ensure certs exist
@@ -20,13 +32,13 @@ if [ "$SSL" = "true" ]; then
"$DIR/generate-cert.sh"
fi
NG_SERVE="cd toju-app && npx ng serve --host=0.0.0.0 --ssl --ssl-cert=../.certs/localhost.crt --ssl-key=../.certs/localhost.key"
NG_SERVE="cd toju-app && npx ng serve --host=0.0.0.0 --ssl --ssl-cert=../.certs/localhost.crt --ssl-key=../.certs/localhost.key$NG_RELOAD_FLAG"
# Use 127.0.0.1 so wait-on does not hit a stale HTTP listener on localhost (::1).
WAIT_URL="https://127.0.0.1:4200"
HEALTH_URL="https://127.0.0.1:3001/api/health"
export NODE_TLS_REJECT_UNAUTHORIZED=0
else
NG_SERVE="cd toju-app && npx ng serve --host=0.0.0.0"
NG_SERVE="cd toju-app && npx ng serve --host=0.0.0.0$NG_RELOAD_FLAG"
WAIT_URL="http://127.0.0.1:4200"
HEALTH_URL="http://127.0.0.1:3001/api/health"
fi