Makefile was building macOS unified agent binaries with 'macos-' prefix
(e.g., pulse-agent-macos-amd64) but the download endpoint and agent's
determineArch() function use 'darwin-' prefix (e.g., pulse-agent-darwin-amd64).
This mismatch could cause macOS agent self-updates to fail because the
server would look for the darwin-prefixed binary that doesn't exist.
Note: The release build script (scripts/build-release.sh) already uses
the correct 'darwin-' prefix, so this only affects local development builds.
Related to #768
The build-agents Makefile target was only building host agent binaries,
which meant development builds were missing the architecture-specific
docker agent binaries (pulse-docker-agent-linux-{amd64,arm64,armv7}).
This caused the install script to fail on ARM platforms like Raspberry Pi
because the download endpoint would fall back to the default amd64 binary,
resulting in "Exec format error" when trying to run on ARM.
Related to #633
- Build host agent binaries for all platforms (linux/darwin/windows, amd64/arm64/armv7) in Docker
- Add Makefile target for building agent binaries locally
- Add startup validation to check for missing agent binaries
- Improve download endpoint error messages with troubleshooting guidance
- Enhance host details drawer layout with better organization and visual hierarchy
- Update base images to rolling versions (node:20-alpine, golang:1.24-alpine, alpine:3.20)