- Rename Node.js job to clarify it builds both frontend and backend
- Add comment explaining what npm run build does (CSS, client, server)
- Include public/bundle/ in Node.js artifacts for frontend assets
- Add Rust binary build job with matrix strategy for multiple platforms:
- Linux (x86_64)
- macOS (x86_64 and arm64)
- Windows (x86_64)
- Cache Rust dependencies for faster builds
- Run tests only on native platforms (not cross-compilation targets)
- Add dedicated job for building Node.js server
- Use Node 20 on Ubuntu for the server build
- Run npm ci, build, and tests for the web directory
- Upload dist/ folder as build artifacts
The serverPort was being stored as a String in SettingsView but read as an
integer in VibeTunnelApp, causing it to default to 0 and then 800. Fixed by
reading it as a String and converting to Int with proper fallback to 4020.