Skip to content

Releases: hatlabs/HALPI2-rust-daemon

v5.1.1+1

04 Jun 12:28
cd84818

Choose a tag to compare

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 halpid

See apt.hatlabs.fi for repository setup.

v5.1.1+1_pre (Pre-release)

04 Jun 12:22
cd84818

Choose a tag to compare

Pre-release

halpid vv5.1.1+1_pre (Pre-release)

⚠️ This is a pre-release build from the main branch. Use for testing only.

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 halpid

v5.1.0+2

21 May 09:31
b304927

Choose a tag to compare

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 halpid

See 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)

21 May 08:55
b304927

Choose a tag to compare

Pre-release

halpid vv5.1.0+2_pre (Pre-release)

⚠️ This is a pre-release build from the main branch. Use for testing only.

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 halpid

v5.1.0+1_pre (Pre-release)

19 Apr 17:43
97017ce

Choose a tag to compare

Pre-release

halpid vv5.1.0+1_pre (Pre-release)

⚠️ This is a pre-release build from the main branch. Use for testing only.

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 halpid

v5.0.2+2_pre (Pre-release)

18 Feb 22:03
8a3a034

Choose a tag to compare

Pre-release

halpid vv5.0.2+2_pre (Pre-release)

⚠️ This is a pre-release build from the main branch. Use for testing only.

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 halpid

v5.0.2+1

16 Feb 21:03
8bf4807

Choose a tag to compare

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 halpid

See 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)

15 Feb 20:46
8bf4807

Choose a tag to compare

Pre-release

halpid vv5.0.2+1_pre (Pre-release)

⚠️ This is a pre-release build from the main branch. Use for testing only.

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 halpid

v5.0.1+1

14 Feb 15:18
2c30bcf

Choose a tag to compare

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 halpid

See 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)

14 Feb 15:13
2c30bcf

Choose a tag to compare

Pre-release

halpid vv5.0.1+1_pre (Pre-release)

⚠️ This is a pre-release build from the main branch. Use for testing only.

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