- Track unique visitors by IP in dashboard WebSocket
- Add /api/online-users endpoint for visitor count
- Display online users count in dashboard footer
- Add force reinstall button when version is up to date
- Update install scripts to support --force flag
- Add i18n translations for online users (all 9 languages)
- Remove special handling for Local nodes
- Add auto execution policy bypass and UAC elevation
- Create separate agent-upgrade.ps1 and agent-uninstall.ps1 for clean irm | iex usage
- Update README with simplified Windows commands
- Update Settings.tsx install command generation
- 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/
- Add Windows support for agent (config paths, gateway detection, service install/uninstall)
- Add Windows PowerShell installation script (agent.ps1)
- Add IP address collection and reporting from agent
- Server captures client IP from WebSocket connection as fallback
- Display agent IP in Settings page
- Update Quick Install section with Windows/Linux tabs
- 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
- Server: Add static file serving with ServeDir
- Server: Improve web directory path resolution
- Server: Add fallback HTML when web assets not found
- Server: Rename config file to vstats-config.json
- Install script: Add macOS launchd service support
- Install script: Add macOS-specific commands and paths
- Add development scripts (start-dev.sh, test-local.sh)
- Enable tower util feature for service_fn