scripts/dev.sh checks toolchains and ports, installs frontend deps when the lockfile changes, starts the Go server and Vite with prefixed logs, and stops both on Ctrl+C or when either exits. The Vite proxy reads the same API_PORT so custom ports keep working.