- Check if backfill is needed before running expensive UPDATE migrations
- Run ANALYZE in background after server starts
- This fixes high CPU and slow startup on servers with large databases
- 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 build-windows job for x86_64 and ARM64 architectures
- Update release job to include Windows binaries
- Update release notes with Windows installation instructions
- 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 official logos for cloud providers and OS distributions
- Add download-logos.py script to fetch official logos
- Improve Dashboard loading with skeleton and smooth animations
- Fix 'server not found' flash on ServerDetail page
- Merge local node and agent settings into unified Server Management
- Fix clipboard copy functionality for all contexts
- Add location display with country flags
- Change default view mode to grid
- Fix start-dev.sh to kill old services and reset password
- Add local node configuration support
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
- Password hot reload: login now reads latest hash from config file
- No server restart needed after --reset-password
- Fixed Dashboard settings button to navigate to /settings instead of /login
- Renamed binary from xprob-server to vstats-server
- 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