Repository navigation
feat: add generic label geometry with explicit display scales - #31
Merged
flowcool merged 2 commits intoOct 20, 2026
Merged
Conversation
Owner
Author
|
@coderabbitai review |
✅ Action performedReview finished.
|
flowcool
added a commit
that referenced
this pull request
Oct 21, 2026
Bring bounded display recovery and safe rendering to the standalone example
flowcool
added a commit
that referenced
this pull request
Oct 21, 2026
…very Drop the globals duplicated by the #31 merge. Let the parity test accept the multi-device extensions (fault hook, counter, logs, MQTT status) and the per-profile sleep_after_display. Bound the flow tests by each profile's on_display_fault delay. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017fn1KdJJTY7LedVqZ7SxcA
flowcool
added a commit
that referenced
this pull request
Oct 21, 2026
…duction features (#34) * feat: expose the running ESPHome version and native config hash * feat: expose the filtered soil voltage without changing calibration * fix: preserve raw gauge labels while clamping needles * fix: recover the missing KiCad symbol library from schematic caches * feat: add transport-independent low-battery protection * fix: bound standalone display recovery and invalid rendering * ci: add firmware tests workflow and CODEOWNERS Run the unit tests and validate the standalone ESPHome configuration on every PR. CODEOWNERS keeps hardware, documentation and repository governance paths under maintainer review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: keep low-battery guide focused on user behavior * docs: remove trailing empty line from battery guide * fix: keep recovered KiCad symbol libraries LF on Windows * fix: align core display recovery and support native tests without UBSan * test: guard shared recovery parity and fresh timer budgets * test: make battery display recorder format-security safe * docs: keep recovery compatibility comments shared between entry points * fix: make public examples self-contained upstream and validate both transports * Limit test CI checkout credentials * feat: add retained MQTT maintenance and storage modes * test: adapt mode checks to merged soil diagnostics and portable libraries * fix: reconcile maintenance/storage modes with the shared display recovery Drop the globals duplicated by the #31 merge. Let the parity test accept the multi-device extensions (fault hook, counter, logs, MQTT status) and the per-profile sleep_after_display. Bound the flow tests by each profile's on_display_fault delay. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017fn1KdJJTY7LedVqZ7SxcA * feat: generate generic label bands from explicit scales and inputs * ci: install pinned label renderer dependencies for unit tests * docs: refresh project entry points and first-install guides * docs: provide firmware-matched label input and clarify defaults --------- Co-authored-by: J.G.Aguado <jon.garcia.aguado@gmail.com> Co-authored-by: J.G.Aguado <jon-garcia@hotmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Behavior
Extract the reusable portion of fork PR #13. YAML input defines recommendation bands and optional display scales; the renderer emits a 1-bit 296x128 PNG plus matching substitutions. Correct the band endpoint to the actual 135-degree runtime start angle. Preserve staging defaults, exclude all real inventory/MAC/HA snapshots/artwork. Retain original JGAguado Label-maker MIT notice.
Target: flowcool/Smart_Plant:upstream/staging-v2r1. Sources
610cb60andf788535, predecessorf426584. Open after the preceding contribution merges so this PR contains only its owned change. The upstream baseline isbcf373144b2d5c7e3a712fd02698e2e98e45aeed. No PR to JGAguado is authorized.Verification
Four tests pass both with system libraries and pinned requirements Pillow 12.3.0, pycairo 1.29.1 and PyYAML 6.0.3. They execute the actual firmware gauge C++, compare default/custom scales and arc endpoints, reject invalid/unsupported inputs before output, and render twice byte-identically. The synthetic label was visually inspected.
Inspect the semantic diff and
git -c core.whitespace=cr-at-eol diff --check; preserve existing line endings. All tracked YAML parses. Firmware fixtures use local fonts/public images and synthetic credentials, never devices or shared builders. Local compilation does not prove deployment.Rollback: revert this isolated PR on staging. No automatic deployment, fleet/NAS/cache purge/MQTT/HA action.
AI assistance
Codex prepared the port or extraction. The author inspected the behavior, contribution boundary, actual-source tests, compatibility and diff. Existing staging OTA confirmation and native shutdown remain intact.
CodeRabbit review
Require current-head completed review and yaml-syntax before merge. Florent approved one manual review request per ignored PR for this series only. Documentation-only PRs use the standing docs gate. Record review/head/checks/merge in owner
infra-3rr.71.Three additional pinned ESPHome package-loader tests pass: generated scales after core win; reversed order and device-level overrides can replace them. The guide makes the required order and removal of conflicting local overrides explicit.
Summary by CodeRabbit
Nouvelles fonctionnalités
Documentation
Tests