Skip to content

Sync csa branch with main - #1277

Merged
sarthak shaha (Sarthak-Shaha) merged 11 commits into
mainfrom
automation/update_main
Oct 14, 2026
Merged

sarthak shaha (Sarthak-Shaha) merged 11 commits into
mainfrom
automation/update_main

Conversation

@silabs-matter-ci-bot

Copy link
Copy Markdown
Contributor

This PR syncs the csa branch with the main branch.

PR MUST BE MERGED WITH MERGE COMMIT - ADMIN MUST ENABLE THE OPTION

…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.
@silabs-matter-ci-bot
silabs-matter-ci-bot Bot requested a review from a team as a code owner October 14, 2026 00:44
@silabs-matter-ci-bot silabs-matter-ci-bot Bot added changing-git-submodules-on-purpose sl-require-admin-action This TAG indicates that an admin must take action. labels Oct 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

The check for sl-require-admin-action label CI failure for this job is normal. An admin must do the merge.

@Sarthak-Shaha
sarthak shaha (Sarthak-Shaha) merged commit 3a7ad18 into main Oct 14, 2026
115 of 118 checks passed
@Sarthak-Shaha
sarthak shaha (Sarthak-Shaha) deleted the automation/update_main branch October 14, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changing-git-submodules-on-purpose sl-require-admin-action This TAG indicates that an admin must take action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.