- Remove default fallback version (v1.0.0/v1.3.0) when API fails
- Exit with error message instead of using incorrect version
- Prevents downloading non-existent versions when rate limited
- Add better error message explaining rate limiting issue
- Add retry logic (3 attempts) for downloads
- Use curl -L to follow redirects properly
- Verify downloaded file is not empty
- Show better error messages on failure
- Change architecture naming from x86_64/aarch64 to amd64/arm64
- Remove musl suffix (Go binaries are statically linked by default)
- Add FreeBSD support
- Sync docs/ scripts with scripts/
Backend:
- Add version tracking for server and agents
- Add version check API (fetches from GitHub releases)
- Add server version endpoint (/api/version)
- Add update server info endpoint (PUT /api/servers/:id)
- Add tag field to RemoteServer
- Agent automatically reports version in metrics
- Simplify agent registration (remove location/provider requirement)
Frontend:
- Display server version and check for updates in Settings
- Show update available badge with download link
- Display agent version in node list and dashboard
- Add edit button for nodes (name, tag, location, provider)
- Add inline edit form for node properties
- Show version and tag badges in dashboard cards
Scripts:
- Update agent.sh to remove location/provider parameters
- Update install command generation
- Add vstats-agent Rust binary (~2MB) for reliable metrics collection
- Implement WebSocket client with exponential backoff reconnection
- Add CLI commands: run, register, install, uninstall, show-config
- Support systemd service installation on Linux
- Support launchd service installation on macOS
- Update GitHub Actions to build agent for all platforms
- Fix shell agent broken pipe errors with reconnection loop
- Update docs and README with Rust agent installation instructions
- Refactor: Split main.rs into modules (config, db, types, handlers, websocket, collector, middleware, state)
- Feature: Add grid view for server list on Dashboard
- Feature: Add 1Y (yearly) time range for history charts
- Feature: Show local server metrics on Dashboard (no demo data)
- Feature: Light/Dark theme support with proper styling
- Fix: Auth token persistence across page refreshes
- Fix: Route parameter syntax for Axum 0.7
- Update: start-dev.sh now rebuilds frontend and backend
- Update: Better gitignore for runtime files