Skip to content

CommissioningProxy PR1: add cluster definition and generated code#72600

Merged
mergify[bot] merged 6 commits into
project-chip:masterfrom
simonhmorris1:cp-pr1-cluster-def
Jun 23, 2026
Merged

CommissioningProxy PR1: add cluster definition and generated code#72600
mergify[bot] merged 6 commits into
project-chip:masterfrom
simonhmorris1:cp-pr1-cluster-def

Conversation

@simonhmorris1

@simonhmorris1 simonhmorris1 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

First in a series of PRs introducing the Commissioning Proxy feature. This PR adds only the data model definition of the new CommissioningProxy cluster (0x0455) and the CommissioningByProxy device type (0x0092), together with everything generated from that definition. It introduces no server logic and no runtime behavior — those follow in subsequent PRs (cluster server implementation, example app, chip-tool/commissioner integration, and certification tests).

What's included:

  • Cluster definition (hand-authored): commissioning-proxy-cluster.xml, plus registration in zcl.json, zcl-with-test-extensions.json, config-data.yaml, and zap_cluster_list.json.
  • New device type: CommissioningByProxy (0x0092) added to matter-devices.xml.
  • Generated code (regenerated from the above, not hand-edited): zzz_generated/app-common (cluster/attribute/command/event IDs, cluster-objects, enums, per-cluster metadata), the controller IDL (controller-clusters.matter), chip-tool command + logging code, the Darwin framework bindings, the Java/Kotlin and Python controller bindings, and the docs/ids_and_codes/zap_clusters.md cluster index.

Splitting the feature this way keeps the large-but-mechanical generated diff isolated from hand-written logic, so the following PRs stay small and reviewable. The zap_cluster_list.json server-directory mapping is deliberately deferred to the cluster-server PR, where that directory actually exists.

Testing

  • Generated files are produced by the standard ZAP/codegen pipeline from the cluster XML — no manual edits to any generated artifact.
  • Verified chip-tool and the Linux lighting-app compile against this branch in isolation, confirming the generated cluster code and the updated app-common headers build with no dependency on any later PR in the series.
  • No runtime behavior is introduced in this PR; functional and certification testing arrive with the cluster-server and example-app PRs.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the CommissioningProxy cluster and the Commissioning By Proxy device type, along with their corresponding XML definitions, Java/Kotlin controller implementations, Python bindings, and Darwin framework support. The review feedback highlights critical robustness improvements needed in the Python ScriptBinding implementation (ChipDeviceController-ScriptBinding.cpp) to prevent potential crashes and hangs. Specifically, it recommends adding defensive null checks for proxyTransport and refactoring error handling in OnResponse and OnError to ensure proper error propagation without double-calling the pairing delegate. Additionally, the CachedResults attribute should be added to the Commissioning Proxy attribute lists in zcl.json and zcl-with-test-extensions.json to maintain consistency with the cluster XML definition.

Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
Comment thread src/app/zap-templates/zcl/zcl.json
Comment thread src/app/zap-templates/zcl/zcl-with-test-extensions.json
Comment thread src/app/common/templates/config-data.yaml Outdated
Comment thread src/controller/python/ChipDeviceController-ScriptBinding.cpp Outdated
@github-actions

Copy link
Copy Markdown

PR #72600: Size comparison from bfec9c8 to 7f88dba

Full report (10 builds for cc13x4_26x4, cc32xx, nrfconnect, realtek, stm32)
platform target config section bfec9c8 7f88dba change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 777336 777368 32 0.0
RAM 103404 103404 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790088 790120 32 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739336 739368 32 0.0
RAM 97612 97612 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719508 719540 32 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569622 569654 32 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597174 597206 32 0.0
RAM 205272 205272 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 835056 835060 4 0.0
RAM 157693 157693 0 0.0
realtek light-switch-app rtl8777g FLASH 689296 689336 40 0.0
RAM 101780 101780 0 0.0
lighting-app rtl8777g FLASH 730248 730280 32 0.0
RAM 102052 102052 0 0.0
stm32 light STM32WB5MM-DK FLASH 478940 478972 32 0.0
RAM 141492 141492 0 0.0

@codecov

codecov Bot commented Jun 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.74%. Comparing base (10dc250) to head (b871472).

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #72600   +/-   ##
=======================================
  Coverage   56.74%   56.74%           
=======================================
  Files        1630     1630           
  Lines      112290   112290           
  Branches    13114    13114           
=======================================
  Hits        63719    63719           
  Misses      48571    48571           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown

PR #72600: Size comparison from bfec9c8 to 678b127

Full report (21 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, psoc6, qpg, realtek, stm32)
platform target config section bfec9c8 678b127 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094860 1094914 54 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1106172 1106228 56 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593968 1594016 48 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057834 1057888 54 0.0
RAM 108525 108525 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896508 896562 54 0.0
RAM 105908 105908 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 777336 777368 32 0.0
RAM 103404 103404 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790088 790120 32 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739336 739368 32 0.0
RAM 97612 97612 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719508 719540 32 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569622 569670 48 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597174 597222 48 0.0
RAM 205272 205272 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 835056 835060 4 0.0
RAM 157693 157693 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1737916 1737980 64 0.0
RAM 215412 215412 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1626596 1626660 64 0.0
RAM 211604 211604 0 0.0
light cy8ckit_062s2_43012 FLASH 1470908 1470972 64 0.0
RAM 197436 197436 0 0.0
lock cy8ckit_062s2_43012 FLASH 1504356 1504420 64 0.0
RAM 225268 225268 0 0.0
qpg lighting-app qpg6200+debug FLASH 842916 843092 176 0.0
RAM 127908 127908 0 0.0
lock-app qpg6200+debug FLASH 782736 782992 256 0.0
RAM 118840 118840 0 0.0
realtek light-switch-app rtl8777g FLASH 689296 689336 40 0.0
RAM 101780 101780 0 0.0
lighting-app rtl8777g FLASH 730248 730280 32 0.0
RAM 102052 102052 0 0.0
stm32 light STM32WB5MM-DK FLASH 478940 478972 32 0.0
RAM 141492 141492 0 0.0

@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown

PR #72600: Size comparison from bfec9c8 to 9bd1d68

Full report (24 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, nrfconnect, psoc6, qpg, realtek, stm32)
platform target config section bfec9c8 9bd1d68 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094860 1094914 54 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1106172 1106228 56 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593968 1594016 48 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057834 1057888 54 0.0
RAM 108525 108525 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896508 896562 54 0.0
RAM 105908 105908 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 777336 777368 32 0.0
RAM 103404 103404 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790088 790120 32 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739336 739368 32 0.0
RAM 97612 97612 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719508 719540 32 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569622 569670 48 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597174 597222 48 0.0
RAM 205272 205272 0 0.0
efr32 lighting-app BRD4187C FLASH 1094988 1095052 64 0.0
RAM 135256 135256 0 0.0
lock-app BRD4187C FLASH 994816 994848 32 0.0
RAM 131292 131292 0 0.0
BRD4338a FLASH 799857 799921 64 0.0
RAM 243432 243432 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 835056 835060 4 0.0
RAM 157693 157693 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1737916 1737980 64 0.0
RAM 215412 215412 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1626596 1626660 64 0.0
RAM 211604 211604 0 0.0
light cy8ckit_062s2_43012 FLASH 1470908 1470972 64 0.0
RAM 197436 197436 0 0.0
lock cy8ckit_062s2_43012 FLASH 1504356 1504420 64 0.0
RAM 225268 225268 0 0.0
qpg lighting-app qpg6200+debug FLASH 842916 843092 176 0.0
RAM 127908 127908 0 0.0
lock-app qpg6200+debug FLASH 782736 782992 256 0.0
RAM 118840 118840 0 0.0
realtek light-switch-app rtl8777g FLASH 689296 689336 40 0.0
RAM 101780 101780 0 0.0
lighting-app rtl8777g FLASH 730248 730280 32 0.0
RAM 102052 102052 0 0.0
stm32 light STM32WB5MM-DK FLASH 478940 478972 32 0.0
RAM 141492 141492 0 0.0

Add the generated registration for commissioning-proxy-cluster.xml that
was missing from the codegen config:

- zap_cluster_list.json: add COMMISSIONING_PROXY_CLUSTER (empty server
  dir; server entry deferred to the cluster-impl PR)
- tests.yaml: add the XML to the CI "Validate that xml are parsable" list
- commissioning-proxy-cluster.xml: regenerate header with
  attribute=in-progress; Git provenance now clean (no -dirty)
@simonhmorris1 simonhmorris1 changed the title CommissioningProxy: add cluster definition and generated code CommissioningProxy PR1: add cluster definition and generated code Jun 22, 2026
@simonhmorris1 simonhmorris1 marked this pull request as ready for review June 23, 2026 06:45
@github-actions

Copy link
Copy Markdown

PR #72600: Size comparison from 10dc250 to b871472

Full report (33 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 10dc250 b871472 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098620 1098674 54 0.0
RAM 133418 133418 0 0.0
bl702 lighting-app bl702+eth FLASH 1085172 1085226 54 0.0
RAM 109029 109029 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 882154 882208 54 0.0
RAM 108596 108596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 777320 777352 32 0.0
RAM 103404 103404 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790064 790096 32 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739336 739368 32 0.0
RAM 97612 97612 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719508 719540 32 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569614 569646 32 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597166 597198 32 0.0
RAM 205272 205272 0 0.0
efr32 lighting-app BRD4187C FLASH 1094860 1094924 64 0.0
RAM 135256 135256 0 0.0
lock-app BRD4187C FLASH 994784 994816 32 0.0
RAM 131292 131292 0 0.0
BRD4338a FLASH 799729 799793 64 0.0
RAM 243432 243432 0 0.0
esp32 all-clusters-app c3devkit DRAM 99884 99884 0 0.0
FLASH 1626632 1626700 68 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 842952 842960 8 0.0
RAM 157755 157755 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1749076 1749140 64 0.0
RAM 215476 215476 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1626468 1626532 64 0.0
RAM 211604 211604 0 0.0
light cy8ckit_062s2_43012 FLASH 1470780 1470844 64 0.0
RAM 197436 197436 0 0.0
lock cy8ckit_062s2_43012 FLASH 1504228 1504292 64 0.0
RAM 225268 225268 0 0.0
qpg lighting-app qpg6200+debug FLASH 843044 843076 32 0.0
RAM 127908 127908 0 0.0
lock-app qpg6200+debug FLASH 782928 782960 32 0.0
RAM 118840 118840 0 0.0
realtek light-switch-app rtl8777g FLASH 689304 689344 40 0.0
RAM 101780 101780 0 0.0
lighting-app rtl8777g FLASH 730248 730288 40 0.0
RAM 102052 102052 0 0.0
stm32 light STM32WB5MM-DK FLASH 478936 478968 32 0.0
RAM 141492 141492 0 0.0
telink light-app-ota-compress-lzma-factory-data tl3218x FLASH 800596 800656 60 0.0
RAM 42380 42380 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 734472 734532 60 0.0
RAM 34472 34472 0 0.0
all-devices-app tl7218x FLASH 845030 845030 0 0.0
RAM 99092 99092 0 0.0
bridge-app tl7218x FLASH 734066 734126 60 0.0
RAM 97700 97700 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl7218x FLASH 845736 845796 60 0.0
RAM 101492 101492 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 734556 734616 60 0.0
RAM 57816 57816 0 0.0
all-devices-app tlsr9118bdk40d FLASH 636404 636404 0 0.0
RAM 120224 120224 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 615128 615188 60 0.0
RAM 118508 118508 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841684 841748 64 0.0
RAM 97376 97376 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795618 795678 60 0.0
RAM 75176 75176 0 0.0

@andy31415 andy31415 added the sdk-maintainer-approved PR marked by `matter-sdk-maintainers` as suitable for MERGE - meets guideline & sufficient reviews. label Jun 23, 2026
@mergify mergify Bot merged commit ce37528 into project-chip:master Jun 23, 2026
85 of 86 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in [Platform] Darwin Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app controller darwin documentation Improvements or additions to documentation github review - pending scripts sdk-maintainer-approved PR marked by `matter-sdk-maintainers` as suitable for MERGE - meets guideline & sufficient reviews. workflows

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants