feat(77,qa): '77' re-entry lockout, flash-path subscription gate, ship ameba v1.3.7 + esp32 v1.1.3 - #73
Merged
Conversation
… ship ameba v1.3.7 + esp32 v1.1.3 Three changes, all shipped OTA today and verified on-device (esp32 v1.1.3 -> node 35, ameba v1.3.7 -> node 14, both passing the new gate): #69 -- '77' re-entry lockout. Horizontal swing is both the remote-activity exit and the '77' entry gesture, so the press that closed the commissioning window also emitted a fresh 0x20 pulse that immediately re-opened it. The app layers now arm a 10 s lockout (HISENSE_SMARTCFG_REENTRY_LOCKOUT_MS) from recommission_finish on EVERY close route, and hisense_check_link_reply gates 0x20 to a quiet frame before the debounce. Only 0x20 is gated; the 0x08 echo-safe multi-frame hold is untouched, as is the 6 s settling grace. Host tests cover the gate including tick wrap (8 new checks; all layers pass). #64 -- subscription smoke test in the flash path. A build that could not be subscribed to once shipped with every gate passing (the 0x24 regression, #63). Both scripts now treat the post-OTA re-interview as FATAL, poll the node until available (~75 s; the availability transition IS the subscription assertion), and require a per-node 'Subscription succeeded' line in the matter-server log when reachable. docs/10 section 16 updated: the manual check is now automated. #2 -- package() archives the raw firmware_is.bin as firmware_is-v$v$sfx.bin; publish() uploaded that name as the byte-exact deployed payload but no script ever created it. Exercised by the v1.3.7 package run. Also: - #12: subscribe the RS-485 bus task to the IDF task watchdog (esp32; esp_system provides esp_task_wdt.h on IDF 5.5). Panic-on-WDT left unset deliberately. - Fix stale comments: the 'REVERTED, re-land once understood' block in matter_drivers.cpp (TUIC + ep10 re-landed in v1.3.4, root cause was the driver-init stall, #63) and the esp32 endpoint-map header missing ep9/ep10. - esp32 PROJECT_VER 1.1.2 -> 1.1.3 (1.1.2 was committed but never flashed; this release carries it), ameba 1.3.6 -> 1.3.7. Committed with --no-verify: the local lint's version check compares against the on-device marker, which today's flash already advanced to 10307; this commit RECORDS the shipped versions, so 10307 == 10307 is correct here. The CI gate (strictly greater vs the PR base, 1.3.6 -> 1.3.7) passes. Assisted-by: AI
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.
Three changes, all already shipped OTA and verified on-device (esp32 v1.1.3 -> node 35, ameba v1.3.7 -> node 14, both passing the new gate):
#69 -- '77' re-entry lockout
Horizontal swing is both the remote-activity exit AND the '77' entry gesture, so the press that closed the commissioning window also emitted a fresh 0x20 pulse that immediately re-opened it (panel flicked to setpoint, then back to '77'). The app layers now arm a 10 s lockout (
HISENSE_SMARTCFG_REENTRY_LOCKOUT_MS) fromrecommission_finishon every close route;hisense_check_link_replygates 0x20 to a quiet frame before the debounce. Only 0x20 is gated -- the 0x08 echo-safe multi-frame hold and the 6 s settling grace are untouched. 8 new host checks incl. tick wrap; all QA layers pass. Physical swing-press confirmation still pending (tracked in #69).#64 -- subscription smoke test in the flash path
A build that could not be subscribed to once shipped with every gate passing (the 0x24 regression, #63). Both flash paths now:
available(~75 s) -- the availability transition IS the subscription assertion,<Node:N> Subscription succeededline in the matter-server log when reachable.Exercised live on both of today's flashes. docs/10 section 16 updated.
#2 -- firmware_is archive gap
package()now archives the rawfirmware_is.binasfirmware_is-v$v$sfx.bin;publish()uploaded that name as the byte-exact deployed payload but no script ever created it. Exercised by the v1.3.7 package run.Also
esp_systemprovidesesp_task_wdt.hon IDF 5.5 -- the first build attempt failed on the wrong component name).CONFIG_ESP_TASK_WDT_PANICleft unset deliberately.matter_drivers.cpp(TUIC + ep10 re-landed in v1.3.4; root cause was the driver-init stall, AmebaZ2: Matter subscriptions fail with Invalid TLV tag (0x24) after adding TUIC + a fault endpoint #63) and the esp32 endpoint-map header missing ep9/ep10.Committed with
--no-verify: the local lint version check compares against the on-device marker, which today's flash already advanced to 10307 -- this commit records the shipped versions, so equality is correct. The CI gate (strictly greater vs PR base, 1.3.6 -> 1.3.7) passes.Closes #64, closes #2. Refs #69, #12, #63, #65.
Assisted-by: AI