Repository navigation
Sync csa branch with main - #1277
Merged
Merged
Conversation
…er (#74712) * [ACL] Handle ReviewFabricRestrictions with no AccessRestrictionProvider HandleReviewFabricRestrictions called the AccessRestrictionProvider without checking it was registered, unlike the cluster's other provider uses. Return UnsupportedCommand when it is null, and default-initialize AccessControl::mAccessRestrictionProvider to nullptr. Adds a unit test invoking the command with no provider registered. * Check for the AccessRestrictionProvider before decoding the request * Add a test for the AccessRestrictionProvider default initializer
…cold boot. (#74500) * [ICD] Latch mPendingActiveModeOnNetworkAttach in ICDManager::Init on cold boot. On a normal device cold reboot while the hub is stable, SRP server data is conveyed in Thread Network Data during the Thread attach procedure, so SRP registration completes and kServerReady is reached right after Thread attachment. However, if the hub is rebooting or unstable, SRP data is not yet ready when kThreadConnectivityChange fires, so kServerReady is delayed. Because TriggerCheckInMessages() is only invoked at kServerReady, latching mPendingActiveModeOnNetworkAttach there meant HandlePlatformEvent(kThreadConnectivityChange) saw no pending work at attach time and did not enter ActiveMode to fast-poll for SRP readiness. Latch mPendingActiveModeOnNetworkAttach in ICDManager::Init() when Check-In Protocol is supported, Thread is enabled, and at least one registered client exists in ICDMonitoringTable, and remove CheckInTriggerReason. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…ed (#74710) * [PowerTopology] Drop the list-write snapshot when its fabric is removed ListAttributeWriteNotification(kListWriteBegin) copies the accessing fabric's ElectricalCircuitNodes entries aside so that a failed list write can be rolled back. OnFabricRemoved purged the fabric's entries but left that copy in place, so a failure notification arriving after the removal wrote the removed fabric's entries back to storage. Record which fabric the snapshot belongs to and release it in OnFabricRemoved when that fabric is the one being removed. A snapshot held for a different fabric is kept, so that fabric's write can still be rolled back. * [PowerTopology] Release the list-write snapshot on Shutdown; test the emptied-slice case Shutdown removes the fabric delegate, so a fabric removed while the cluster is shut down would no longer release the snapshot. Release it in Shutdown as well. Add tests for a fabric removed after its list write has emptied its entries, and for a fabric removed while the cluster is shut down.
* rebind door lock user/credential info spans on copy * Guard door lock copy-assignment against self-assign and empty span * Add unit test for door lock local-buffer copy semantics Builds the door lock structs with DOOR_LOCK_USE_LOCAL_BUFFER=1 (never set in the default CI configuration) and checks that copy construction and assignment rebind userName/credentials/credentialData to the copy's own buffers, including the self-assignment and empty-span cases. * List door-lock-server.h in the local-buffer test sources for gn check door-lock-server.h is compiled per-application via chip_data_model.gni and has no standalone library target, so gn check rejected the include from TestDoorLockLocalBufferCopy.cpp. List the header in the test suite's sources, matching how other cluster test suites reference their app-config-dependent files. * Fix door lock local-buffer test build in progress-logging and dynamic-server configs The test links the ember mocks, which pull in SessionManager.cpp. In builds with CHIP_PROGRESS_LOGGING enabled (coverage, asan, python_lib, tizen) that file calls Protocols::GetProtocolName(), so the test binary needs //src/protocols on its link line like the other mock-ember suites. The suite also cannot build with chip_build_controller_dynamic_server (the Android chip-tool build): that config skips the generated gen_config.h, so MATTER_DM_DOOR_LOCK_CLUSTER_SERVER_ENDPOINT_COUNT used by door-lock-server.h is undefined. Move it to the linux/darwin-only block in src/BUILD.gn alongside the other suites that link the ember mocks. * Check credential metadata in the door lock copy-constructor test Mirror the assertions from the copy-assignment case so a copy constructor that drops the non-span fields would fail the test. * Use span copy helpers in door lock local-buffer copy Replace the raw memcpy/std::min pairs with CopySpanToMutableSpan and CopyCharSpanToMutableCharSpan, wrapped in SuccessOrDie: the destination is always the struct's own buffer, so a short destination is not reachable.
* [HVAC] Implement Thermostat test 2.3 * Simplify some of the PICS checks * Apply batched suggestions from code review Co-authored-by: René Josefsen <69624991+ReneJosefsen@users.noreply.github.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: René Josefsen <69624991+ReneJosefsen@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Update clusters with complete metadata * Revert changes to zcl files * Restyled by whitespace * Restyled by prettier-json --------- Co-authored-by: Restyled.io <commits@restyled.io>
* [Thermostat] Reject AtomicRequest outside a CASE session An AtomicRequest received on a groupcast session was accepted and the group message source node ID recorded as the Atomic Writer ID. The spec defines the Atomic Writer ID of a groupcast session context as invalid, and requires INVALID_COMMAND for an AtomicRequest with an invalid Atomic Writer ID or without an accessing fabric (AtomicRequest, Effect on Receipt). Return INVALID_COMMAND for any AtomicRequest that does not arrive on a CASE session, for all request types. GetSourceScopedNodeId still mapped a group session to its source node ID, following spec text that was replaced before 1.4. Remove that branch; it is no longer reachable from AtomicRequest. * [Thermostat] Check the Atomic Writer ID on AtomicRequest commit and rollback CommitWrite and RollbackWrite were accepted from any client naming the same attribute set as the open atomic write, not only from the client associated with it. The spec requires INVALID_IN_STATE when the client is not associated with a matching Atomic Write State, which includes the Atomic Writer ID and accessing fabric. Compare the recorded writer against the requesting session, as BeginWrite already does. * [Thermostat] Do not replace an open atomic write on BeginWrite The cluster holds a single Atomic Write State, but BeginWrite only reported BUSY for attributes already in the open atomic write. A BeginWrite from another client for a different atomic attribute passed every check and replaced the open state, so the first client's pending writes were never rolled back and its CommitWrite failed. Return RESOURCE_EXHAUSTED for those attributes instead, as the spec requires when the server cannot pend writes to an attribute.
* Python BDX: end and release a rejected transfer (fixes #74138) * adds dlog 2.1 automation script * removes yaml * cr comment * flips MCORE.BDX.Initiator to 1 * pr comments * cr comment * step adjust * pr comments
* all-devices-app: put the LVGL display and chime behind a board layer The LVGL renderer called the CoreS3 BSP directly. Route the panel, lock and brightness calls through DisplayBoard, with one backend per board, and keep the chime's tone synthesis in TonePlayingChime so a board only supplies its audio output path. Also fix the build with ESP-IDF 6.2: GCC 16 warns on partial designated initializers, and LVGL 9.5 has no lv_obj_set_send_draw_task_events(). * all-devices-app: support the ESP-Mosaico (ESP32-S31) Add the board choice with its DisplayBoard and chime backends, the Mosaico defaults and the README instructions. The build takes the esp-mosaico-bsp component from the checkout ESP_MOSAICO_BSP_PATH points at. The board's USB-C port is the USB OTG controller, so the application runs a TinyUSB CDC console on it that also answers esptool's USB Serial/JTAG reset sequence; logs and idf.py flash work over the one cable. Small allocations go to PSRAM on this board: with the 4 KB internal threshold the CHIP stack, LVGL and the NimBLE host left about 24 KB of internal RAM and the BLE controller dropped the link during commissioning. * all-devices-app: redesign the LVGL UI and show commissioning progress A theme and a small design system give every screen one finish and scale between 320x240 and 480-class panels. The navigation bar shows breadcrumbs and live Wi-Fi, BLE and fabric indicators. A CommissioningMonitor turns platform events into a status line on the QR screen and returns to Home on success; once a fabric exists that screen shows a Commissioned notice, since a later commissioning window carries its own passcode. Boards report an edge inset so rounded panels do not clip the Home crumb. * all-devices-app: reword possessives the spelling check rejects * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * all-devices-app: compile the Mosaico USB console only for the Mosaico main/ is compiled per directory for every board, so the console ended up in the CoreS3 and M5Stack builds, which have neither TinyUSB nor the S31 registers. Move it next to the other per-board sources. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * all-devices-app: address review comments Release the restart timer and shutdown handler when the USB console fails to come up, rebuild the commissioning codes screen when the fabric count changes while it is open, and do not report a BLE close as a failure once network credentials have been received. Reset the styles of layout rows inside cards so they do not inherit the card shadow, and use a bullet in the Home caption since Montserrat has no middle dot. * all-devices-app: drop the Mosaico revision list and fix a status table row The BSP handles board revisions itself, so the Kconfig help and README do not need to list them. The BLE close is only a failure before credentials arrive, which the display README now says. * all-devices-app: trim the Mosaico documentation Drop the Kconfig help, the duplicate repository table, the esptool retry note and the shell remark from the README, and cut the display README back to what the code does. * all-devices-app: reword a line the spelling check rejects --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…er extensions (#74734) Private extension attributes and commands are routed by manufacturerCode, but enums and bitmaps have no manufacturer code, so an extension's types are always emitted unguarded into MTRBaseClusters.h. Add a DarwinPrivateExtensionTypes config list (Cluster::TypeName). Listed enums and bitmaps are wrapped in the same MTR_INCLUDE_CLUSTER_EXTENSION_* guard as the rest of that cluster's private extension. The list is empty here, so generated output is unchanged.
Contributor
|
The check for |
Michael Duggan (miduggan24)
approved these changes
Oct 14, 2026
sarthak shaha (Sarthak-Shaha)
approved these changes
Oct 14, 2026
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.
This PR syncs the csa branch with the main branch.
PR MUST BE MERGED WITH MERGE COMMIT - ADMIN MUST ENABLE THE OPTION