Release v1.3.9
v1.3.9 focuses on data integrity, CDN friendliness, and hardening the push/TCPing paths while keeping existing clients and databases compatible.
Highlights
- Preserves multiple TCPing samples that arrive in the same second or with the same timestamp instead of overwriting older samples.
- Persists push-mode metrics and TCPing results in a single bbolt transaction, reducing write amplification without changing the wire protocol.
- Keeps TCPing history cache target-scoped and bounded; oversized history responses are still returned in full and only skip the in-memory cache copy.
- Adds startup cleanup for TCPing history older than 24 hours so large databases do not wait for the hourly cleaner after restart.
- Adds CDN-friendly cache headers: hashed
/_astro/*assets are immutable for CDN/browser caches, while HTML and API/SSE responses remain fresh and safe. - Hardens client IP handling behind trusted proxies and avoids logging token-bearing query strings in bundled Nginx access logs.
- Improves backup/restore support for Docker named volumes by detecting the actual
/app/datamount from the running container. - Fixes client request-context cancellation so registration and push responses can reliably read returned TCPing configuration.
- Preserves Pulse-Hotaru navbar compatibility flags (
hide_tags,hide_cards) for future backend unification.
Compatibility
- Existing clients continue to work.
- Existing
metrics.dbfiles remain readable, including legacy TCPing key formats. - Existing Docker named-volume and bind-mount deployments are supported.
/api/*and/api/eventsintentionally remain non-cacheable; only static assets should produce CDN cache hits.
Verified
- Server tests and vet checks.
- Client build/test checks.
- Frontend Astro build.
- Shell script syntax checks.
- Docker image build and runtime health check.
- Nginx configuration validation and cache-header inspection.
📦 Docker Images
xhh1128/pulse:1.3.9xhh1128/pulse:latest
📥 Downloads
Client binaries
| Platform | File |
|---|---|
| Linux amd64 | probe-client |
| Linux arm64 | probe-client-arm64 |
| macOS Intel (amd64) | probe-client-darwin-amd64 |
| macOS Apple Silicon (arm64) | probe-client-darwin-arm64 |
| Windows amd64 | probe-client.exe |
| Install Script (Linux + macOS) | install.sh |
Server standalone binaries (uploaded by the standalone workflow)
| Platform | File |
|---|---|
| Linux amd64 | pulse-server-standalone-linux-amd64 |
| Linux arm64 | pulse-server-standalone-linux-arm64 |
Quick Install (Linux & macOS):
curl -sSL https://raw.githubusercontent.com/xhhcn/Pulse/main/client/install.sh | sudo bash -s -- --id YOUR_ID --server http://YOUR_SERVER:8080One-click migration to a new host:
PASSWORD="$OLD_ADMIN_PW" \
sudo -E ./scripts/migrate.sh --from https://old.example.com