Releases: hatlabs/HALPI2-rust-daemon
v5.1.1+1
halpid v5.1.1
What's fixed
A startup crash that could leave a HALPI2 unresponsive (#101).
On affected units, halpid 5.1.0 could segfault repeatedly while starting up. During the crash loop the status LEDs stayed yellow, the watchdog was never armed, and halpi status / halpi flash failed with "Failed to connect to daemon" — which also blocked the normal firmware-update path. A unit would usually recover on its own after a few minutes once a restart happened to survive, but until then it looked bricked.
Cause: at startup the HTTP server and the LED socket were initialised in parallel, and each resolved its Unix-socket group using the C library's getgrnam, which is not safe to call from two threads simultaneously. The concurrent calls corrupted the memory allocator and crashed the process. The race is timing-sensitive, so it reproduced reliably on older MCU firmware (3.1.x) and only rarely on newer firmware — but the firmware was a trigger, not the cause.
Fix: the socket group IDs are now resolved once, on a single thread, before any background tasks start, so the unsafe lookup never runs concurrently. Verified on hardware — a unit that segfaulted 42 times in a single boot now starts cleanly every time.
No configuration changes are needed. Upgrading is recommended for all units, especially any still on older MCU firmware.
Features
- Power Management: Monitor input voltage and supercapacitor charge, coordinate graceful shutdowns
- Watchdog: Hardware watchdog integration for system hang detection and recovery
- HTTP API: RESTful API over Unix socket for status and control
- CLI: Comprehensive command-line interface (
halpi) - Firmware Updates: Over-the-air firmware updates via I2C DFU protocol
- USB Port Control: Power cycling capabilities for individual USB ports
Installation
sudo apt install halpidSee apt.hatlabs.fi for repository setup.
v5.1.1+1_pre (Pre-release)
halpid vv5.1.1+1_pre (Pre-release)
Build Information:
- Commit: cd84818 (
cd848188405a4bedb7a3cc1b212adfe036c8354c) - Built: 2026-06-04 12:22:20 UTC
Recent Changes
- Bump version: 5.1.0 → 5.1.1 (4c61f4c)
- fix(server): resolve socket group GIDs before spawning tasks (214d614)
Installation
To install this pre-release on your HALPI2:
# Add Hat Labs repository (if not already added)
curl -fsSL https://apt.hatlabs.fi/hat-labs-apt-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/hatlabs-apt-key.gpg
# Add unstable channel
echo "deb [signed-by=/usr/share/keyrings/hatlabs-apt-key.gpg] https://apt.hatlabs.fi unstable main" | sudo tee /etc/apt/sources.list.d/hatlabs-unstable.list
# Update and install
sudo apt update
sudo apt install halpidv5.1.0+2
halpid v5.1.0-2
HALPI2 power monitoring and watchdog daemon.
Changes
- feat(halpi): show device_id in status output (70730ab)
- feat(tooling): add Docker-based build for macOS (2008899)
- feat(tooling): add pre-pr checks and pr command (d4b4d76)
- Bump version: 5.0.2 → 5.1.0 (71d5ec0)
- fix(tooling): fix bumpversion to accept version number directly (d493fec)
- fix(led): address review findings for LED socket (59bce07)
- feat(led): add LED override socket and protocol layer (b8d7941)
- feat: add hostname lint check (dfe3746)
Features
- Power Management: Monitor input voltage and supercapacitor charge, coordinate graceful shutdowns
- Watchdog: Hardware watchdog integration for system hang detection and recovery
- HTTP API: RESTful API over Unix socket for status and control
- CLI: Comprehensive command-line interface (
halpi) - Firmware Updates: Over-the-air firmware updates via I2C DFU protocol
- USB Port Control: Power cycling capabilities for individual USB ports
- High Performance: 5x memory reduction, 20x faster startup vs Python version
Installation
This is the source code release. For Debian packages:
sudo apt install halpidSee apt.hatlabs.fi for repository setup.
Development
For development setup and build commands, see:
- README.md - Installation and usage
./run help- Available build and development commands
v5.1.0+2_pre (Pre-release)
halpid vv5.1.0+2_pre (Pre-release)
Build Information:
- Commit: b304927 (
b3049275c86e9ad7916b09ffc2f2a9516c5bf255) - Built: 2026-05-21 08:55:34 UTC
Recent Changes
- feat(halpi): show device_id in status output (70730ab)
- feat(tooling): add Docker-based build for macOS (2008899)
- feat(tooling): add pre-pr checks and pr command (d4b4d76)
- Bump version: 5.0.2 → 5.1.0 (71d5ec0)
- fix(tooling): fix bumpversion to accept version number directly (d493fec)
- fix(led): address review findings for LED socket (59bce07)
- feat(led): add LED override socket and protocol layer (b8d7941)
- feat: add hostname lint check (dfe3746)
Installation
To install this pre-release on your HALPI2:
# Add Hat Labs repository (if not already added)
curl -fsSL https://apt.hatlabs.fi/hat-labs-apt-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/hatlabs-apt-key.gpg
# Add unstable channel
echo "deb [signed-by=/usr/share/keyrings/hatlabs-apt-key.gpg] https://apt.hatlabs.fi unstable main" | sudo tee /etc/apt/sources.list.d/hatlabs-unstable.list
# Update and install
sudo apt update
sudo apt install halpidv5.1.0+1_pre (Pre-release)
halpid vv5.1.0+1_pre (Pre-release)
Build Information:
- Commit: 97017ce (
97017ce06bc08ce6a0e4518f80619815098d8d2e) - Built: 2026-04-19 17:43:14 UTC
Recent Changes
- feat(tooling): add Docker-based build for macOS (2008899)
- feat(tooling): add pre-pr checks and pr command (d4b4d76)
- Bump version: 5.0.2 → 5.1.0 (71d5ec0)
- fix(tooling): fix bumpversion to accept version number directly (d493fec)
- fix(led): address review findings for LED socket (59bce07)
- feat(led): add LED override socket and protocol layer (b8d7941)
- feat: add hostname lint check (dfe3746)
Installation
To install this pre-release on your HALPI2:
# Add Hat Labs repository (if not already added)
curl -fsSL https://apt.hatlabs.fi/hat-labs-apt-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/hatlabs-apt-key.gpg
# Add unstable channel
echo "deb [signed-by=/usr/share/keyrings/hatlabs-apt-key.gpg] https://apt.hatlabs.fi unstable main" | sudo tee /etc/apt/sources.list.d/hatlabs-unstable.list
# Update and install
sudo apt update
sudo apt install halpidv5.0.2+2_pre (Pre-release)
halpid vv5.0.2+2_pre (Pre-release)
Build Information:
- Commit: 8a3a034 (
8a3a034c76d7a7f6cba142f0d64e9e6b655cf87a) - Built: 2026-02-18 22:03:14 UTC
Recent Changes
- feat: add hostname lint check (dfe3746)
Installation
To install this pre-release on your HALPI2:
# Add Hat Labs repository (if not already added)
curl -fsSL https://apt.hatlabs.fi/hat-labs-apt-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/hatlabs-apt-key.gpg
# Add unstable channel
echo "deb [signed-by=/usr/share/keyrings/hatlabs-apt-key.gpg] https://apt.hatlabs.fi unstable main" | sudo tee /etc/apt/sources.list.d/hatlabs-unstable.list
# Update and install
sudo apt update
sudo apt install halpidv5.0.2+1
halpid v5.0.2-1
HALPI2 power monitoring and watchdog daemon.
Changes
- Bump version: 5.0.1 → 5.0.2 (5173082)
- feat(socket): use dedicated halpid group for socket access control (31ac206)
Features
- Power Management: Monitor input voltage and supercapacitor charge, coordinate graceful shutdowns
- Watchdog: Hardware watchdog integration for system hang detection and recovery
- HTTP API: RESTful API over Unix socket for status and control
- CLI: Comprehensive command-line interface (
halpi) - Firmware Updates: Over-the-air firmware updates via I2C DFU protocol
- USB Port Control: Power cycling capabilities for individual USB ports
- High Performance: 5x memory reduction, 20x faster startup vs Python version
Installation
This is the source code release. For Debian packages:
sudo apt install halpidSee apt.hatlabs.fi for repository setup.
Development
For development setup and build commands, see:
- README.md - Installation and usage
./run help- Available build and development commands
v5.0.2+1_pre (Pre-release)
halpid vv5.0.2+1_pre (Pre-release)
Build Information:
- Commit: 8bf4807 (
8bf4807b46df8028a9a6d4cb5b6970911e02660f) - Built: 2026-02-15 20:46:54 UTC
Recent Changes
- Bump version: 5.0.1 → 5.0.2 (5173082)
- feat(socket): use dedicated halpid group for socket access control (31ac206)
Installation
To install this pre-release on your HALPI2:
# Add Hat Labs repository (if not already added)
curl -fsSL https://apt.hatlabs.fi/hat-labs-apt-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/hatlabs-apt-key.gpg
# Add unstable channel
echo "deb [signed-by=/usr/share/keyrings/hatlabs-apt-key.gpg] https://apt.hatlabs.fi unstable main" | sudo tee /etc/apt/sources.list.d/hatlabs-unstable.list
# Update and install
sudo apt update
sudo apt install halpidv5.0.1+1
halpid v5.0.1-1
HALPI2 power monitoring and watchdog daemon.
Changes
- docs: update AGENTS.md command names and project description (3f28c48)
- feat(packaging): rename Debian package from halpi2-rust-daemon to halpid (2c57510)
- refactor: remove docker-build function that produces host-arch binaries (37b0695)
- fix(ci): add concurrency group to prevent race condition (#90) (70effcd)
- feat: add lefthook pre-commit hooks for format/lint checks (#89) (2c6b779)
Features
- Power Management: Monitor input voltage and supercapacitor charge, coordinate graceful shutdowns
- Watchdog: Hardware watchdog integration for system hang detection and recovery
- HTTP API: RESTful API over Unix socket for status and control
- CLI: Comprehensive command-line interface (
halpi) - Firmware Updates: Over-the-air firmware updates via I2C DFU protocol
- USB Port Control: Power cycling capabilities for individual USB ports
- High Performance: 5x memory reduction, 20x faster startup vs Python version
Installation
This is the source code release. For Debian packages:
sudo apt install halpidSee apt.hatlabs.fi for repository setup.
Development
For development setup and build commands, see:
- README.md - Installation and usage
./run help- Available build and development commands
v5.0.1+1_pre (Pre-release)
halpid vv5.0.1+1_pre (Pre-release)
Build Information:
- Commit: 2c30bcf (
2c30bcfc38cc1ec774333f5261dc56e6882eb173) - Built: 2026-02-14 15:12:59 UTC
Recent Changes
- docs: update AGENTS.md command names and project description (3f28c48)
- feat(packaging): rename Debian package from halpi2-rust-daemon to halpid (2c57510)
- refactor: remove docker-build function that produces host-arch binaries (37b0695)
- fix(ci): add concurrency group to prevent race condition (#90) (70effcd)
- feat: add lefthook pre-commit hooks for format/lint checks (#89) (2c6b779)
Installation
To install this pre-release on your HALPI2:
# Add Hat Labs repository (if not already added)
curl -fsSL https://apt.hatlabs.fi/hat-labs-apt-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/hatlabs-apt-key.gpg
# Add unstable channel
echo "deb [signed-by=/usr/share/keyrings/hatlabs-apt-key.gpg] https://apt.hatlabs.fi unstable main" | sudo tee /etc/apt/sources.list.d/hatlabs-unstable.list
# Update and install
sudo apt update
sudo apt install halpid