1
0
Fork
You've already forked grow-fleet
0

HGC-4 channel-aware OTA firmware packages #5

Closed
stackdrift wants to merge 0 commits from hgc-004-ota-firmware-updates into main
pull from: hgc-004-ota-firmware-updates
merge into: stackdrift:main
stackdrift:main
stackdrift:hgc-020-thermal-camera-dashboard
stackdrift:chore/bump-esphome-components-vpd
stackdrift:firmware-runner-cache-runner-config
stackdrift:firmware-runner-cache
stackdrift:feat/bootstrap-firmware-ci

Summary

  • Add ESPHome project identity, HTTP-request OTA/update support, firmware check buttons, and retained device firmware metadata.
  • Extend package manifests with channel, project/package identity, node/device IDs, chip family, MD5/SHA256, source SHA, generated metadata, and changelog summaries.
  • Publish stable packages from firmware tags and edge packages from successful main builds, with edge package pruning.

Tests

  • python3 -m unittest discover -s tests
  • python3 -m py_compile scripts/.py tests/.py
  • YAML parsing with local !secret loader

Local ESPHome compile was not run because esphome is not installed in this environment.

HGC-4

## Summary - Add ESPHome project identity, HTTP-request OTA/update support, firmware check buttons, and retained device firmware metadata. - Extend package manifests with channel, project/package identity, node/device IDs, chip family, MD5/SHA256, source SHA, generated metadata, and changelog summaries. - Publish stable packages from firmware tags and edge packages from successful main builds, with edge package pruning. ## Tests - python3 -m unittest discover -s tests - python3 -m py_compile scripts/*.py tests/*.py - YAML parsing with local !secret loader Local ESPHome compile was not run because esphome is not installed in this environment. HGC-4
Add channel-aware OTA firmware packages
All checks were successful
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Has been skipped
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m12s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m9s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m15s
0eb26a07c0
Handle paginated package pruning and release cache restore
All checks were successful
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Has been skipped
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m13s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m10s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m15s
5bc1c3809e
Author
Owner
Copy link

Claude review follow-up for HGC-4:

Addressed in this PR set:

  • Fixed Codeberg package listing pagination in grow-app package lookup and grow-fleet edge pruning.
  • Added unit coverage for paginated package listing in both repos.
  • Restored grow-fleet release-tag cache behavior: release jobs now try cached firmware for the tagged SHA, then compile/store only on cache miss.

Filed as follow-up Kanboard work:

Deferred / non-issues:

  • Self-hosted runner trust boundary is not an issue for the current repo policy.
  • retainedByTopic pruning is not being tracked separately for Phase 1. It stores one last payload per seen topic, not one entry per message, so growth is bounded by the local site topic set. Revisit as part of central-mode MQTT hardening if broader or ephemeral namespaces are introduced.

Verification after the follow-up commits:

  • grow-app PR run 4931633: success.
  • grow-fleet PR run 4931639: success.

HGC-4

Claude review follow-up for HGC-4: Addressed in this PR set: - Fixed Codeberg package listing pagination in grow-app package lookup and grow-fleet edge pruning. - Added unit coverage for paginated package listing in both repos. - Restored grow-fleet release-tag cache behavior: release jobs now try cached firmware for the tagged SHA, then compile/store only on cache miss. Filed as follow-up Kanboard work: - [Task 18: grow-fleet edge publish path filters and concurrency guard](https://kanban.ai.dephekt.net/public/task/18/837ffef1c79917c32d6ed0f994e5ab6f4442cd25f3ca60da3acf6fceaf61) - [Task 19: support custom ESPHome update install payloads](https://kanban.ai.dephekt.net/public/task/19/837ffef1c79917c32d6ed0f994e5ab6f4442cd25f3ca60da3acf6fceaf61) Deferred / non-issues: - Self-hosted runner trust boundary is not an issue for the current repo policy. - retainedByTopic pruning is not being tracked separately for Phase 1. It stores one last payload per seen topic, not one entry per message, so growth is bounded by the local site topic set. Revisit as part of central-mode MQTT hardening if broader or ephemeral namespaces are introduced. Verification after the follow-up commits: - grow-app PR run 4931633: success. - grow-fleet PR run 4931639: success. HGC-4
stackdrift force-pushed hgc-004-ota-firmware-updates from 5bc1c3809e
All checks were successful
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Has been skipped
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m13s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m10s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m15s
to 62163f2be5
All checks were successful
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Has been skipped
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m7s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m12s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m14s
2026年06月21日 03:24:46 +02:00
Compare
stackdrift changed title from (削除) HGC-004 channel-aware OTA firmware packages (削除ここまで) to HGC-4 channel-aware OTA firmware packages 2026年06月21日 03:44:40 +02:00
stackdrift force-pushed hgc-004-ota-firmware-updates from 62163f2be5
All checks were successful
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Has been skipped
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m7s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m12s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m14s
to 41f35f2c03
All checks were successful
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Successful in 6m35s
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m10s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m10s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m14s
2026年06月21日 03:47:18 +02:00
Compare
All checks were successful
firmware / pr_prepare (pull_request) Successful in 3s
firmware / main (pull_request) Has been skipped
firmware / release (pull_request) Has been skipped
firmware / dispatch (pull_request) Has been skipped
firmware / pr_prepare (push) Has been skipped
firmware / main (push) Successful in 6m35s
firmware / release (push) Has been skipped
firmware / dispatch (push) Has been skipped
firmware / pr_compile (atlas-hydro-kit) (pull_request) Successful in 2m10s
firmware / pr_compile (atoms3u-sensor-rig) (pull_request) Successful in 2m10s
firmware / pr_compile (m5stack-airq) (pull_request) Successful in 2m14s

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
stackdrift/grow-fleet!5
Reference in a new issue
stackdrift/grow-fleet
No description provided.
Delete branch "hgc-004-ota-firmware-updates"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?