Skip to content

[Darwin] Surface granular pairing-failure context in MTRError + DNS-SD / BLE error preservation#72211

Open
woody-apple wants to merge 1 commit into
project-chip:masterfrom
woody-apple:darwin/preserve-commissioning-error-context
Open

[Darwin] Surface granular pairing-failure context in MTRError + DNS-SD / BLE error preservation#72211
woody-apple wants to merge 1 commit into
project-chip:masterfrom
woody-apple:darwin/preserve-commissioning-error-context

Conversation

@woody-apple
Copy link
Copy Markdown
Contributor

@woody-apple woody-apple commented May 27, 2026

[Darwin] Surface granular pairing-failure context in MTRError + DNS-SD / BLE error preservation

Consumers of MTRError currently see most commissioning failures surface as a
single "Error Domain=com.apple.MatterSupport Code=1 (null)". This change plumbs
structured detail into the bridged NSError so callers can disambiguate failure
modes, and tightens Darwin's CoreBluetooth / DNS-SD error mapping at the same
time.

Scope: this commit is intentionally limited to the Darwin framework
(MTRError), two new core DNS-SD CHIP_ERROR codes + their descriptions, and the
Darwin platform glue (DnssdError mapping, BLE error preservation). It is
additive only - it touches 13 files and reverts nothing on master. The earlier
core-controller plumbing (CompletionStatus widening, DevicePairingDelegate
overload, PASE/CASE status-code mapping) is already merged on master via
#72227/#72228 and is NOT part of this commit.

Darwin framework (MTRError):

  • Add NSError userInfo keys with unprefixed string values
    (MTR_PROVISIONALLY_AVAILABLE):
    MTRAttestationVerificationResultKey (= @"attestationVerificationResult")
    MTRAttestationDeviceVendorIDKey (= @"deviceVendorID")
    MTRAttestationDeviceProductIDKey (= @"deviceProductID")
    MTRUnderlyingErrorCodeKey (= @"errorCode" - same string as the key
    already documented for MTRErrorCodeGeneralError, so existing readers of
    userInfo[@"errorCode"] keep working).
  • Surface AttestationVerificationResult enum + BasicInformation VID/PID in
    attestation-failure NSErrors (VID/PID are what the device asserts; they may
    not match the device's certification).
  • New errorForCHIPErrorCode:logContext:additionalUserInfo: overload lets bridge
    call sites attach attestation metadata without losing the existing
    MTRErrorHolder association, and merges additionalUserInfo on both the
    IM-status and core-error bridge paths (framework-reserved keys win).
  • NSError (Matter) category: mtr_underlyingMatterErrorSourceFile and
    mtr_underlyingMatterErrorSourceLine read source location on demand from the
    existing MTRErrorHolder associated object via a single helper, rather than
    baking source file/line into userInfo on every mapped error.

DNS-SD codes (src/lib/core):

  • New CHIP_ERROR_DNSSD_NXDOMAIN (0xBE) - DNS-SD operational instance does not
    exist.
  • New CHIP_ERROR_DNSSD_SERVICE_NOT_RUNNING (0xC7) - DNS-SD platform service is
    not running.
  • Description arms in CHIPError.cpp; test entries in TestCHIPErrorStr.cpp;
    ERROR_CODES.md regenerated.

Platform/Darwin:

  • DnssdError.cpp: map kDNSServiceErr_NoSuchName / NoSuchRecord to
    CHIP_ERROR_DNSSD_NXDOMAIN, kDNSServiceErr_ServiceNotRunning to
    CHIP_ERROR_DNSSD_SERVICE_NOT_RUNNING, kDNSServiceErr_Timeout to
    CHIP_ERROR_TIMEOUT (instead of collapsing to CHIP_ERROR_INTERNAL).
  • BleConnectionDelegateImpl.mm: WrapCBErrorCodeAsKOS preserves the
    CoreBluetooth NSError.code in a kOS-range CHIP_ERROR for triage, with a
    24-bit overflow guard that falls back to the cross-platform BLE_ERROR_GATT_*
    sentinel; the existing HandleConnectionError contract is unchanged for
    non-Darwin consumers.

Testing

Unit tests added/extended (run by existing CI targets):

  • Core error-string coverage in src/lib/core/tests/TestCHIPErrorStr.cpp:
    the two new CHIP_ERROR_DNSSD_NXDOMAIN / CHIP_ERROR_DNSSD_SERVICE_NOT_RUNNING
    codes are added to the formattable-error list so chip::ErrorStr is asserted
    to produce a description for each, pinning the additive error-code allocation.

  • Darwin framework coverage in
    src/darwin/Framework/CHIPTests/MTRErrorMappingTests.m:

    • userInfo key string values are stable
      (MTRAttestationVerificationResultKey == "attestationVerificationResult",
      VID/PID keys), and MTRUnderlyingErrorCodeKey matches the existing
      documented key for general errors.
    • MTRUnderlyingErrorCodeKey is populated on bridged errors and on non-general
      error codes, round-trips through MTRErrorHolder, and is not corruptible by a
      caller-supplied additionalUserInfo value.
    • additionalUserInfo is merged on both the IM-status and core-error bridge
      paths, with framework-reserved keys winning on both paths; attestation keys
      (verification result + VID/PID) are populated on the integrity-check bridge and
      survive on non-integrity-check / general error codes.
    • BLE / KOS-range CoreBluetooth codes round-trip and stay distinct, including
      boundary values; the two new DNS-SD codes bridge and round-trip through a
      general error; category accessors return empty for arbitrary non-bridged
      NSErrors.
  • src/darwin/Framework/CHIPTests/MTRErrorTests.m: underlying-error source-file
    basename stripping handles mixed path separators.

Coverage limitations: DnssdError.cpp's DNSServiceErrorType -> CHIP_ERROR
switch and the file-local WrapCBErrorCodeAsKOS overflow guard have no direct
unit tests (no Darwin platform unit-test target; the underlying error codes are
covered in TestCHIPErrorStr.cpp, and CoreBluetooth codes are documented small
non-negative integers). Attestation-key population at the
MTRDeviceAttestationDelegateBridge.mm call site requires an end-to-end
attestation failure to exercise; the bridge merge logic it relies on is covered
by the mapping tests above.

(Edited by Claude)

Copy link
Copy Markdown
Contributor

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

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 enhances error reporting and diagnostic fidelity across the commissioning, attestation, DNS-SD, and BLE layers. It introduces several specific CHIP_ERROR codes (e.g., for CASE failures, DNS-SD NXDOMAIN, and ICD temporary unavailability) and surfaces detailed debug text and error values in CompletionStatus. Additionally, it exposes structured attestation verification results and device identifiers in Darwin's NSError userInfo. The review feedback highlights two important issues: a potential runtime crash in MTRDeviceAttestationDelegateBridge.mm when inserting nullable vendor/product IDs into an Objective-C dictionary literal, and a potential build-host path leak on Windows environments in MTRError.mm due to hardcoded forward-slash path separator checks.

Comment thread src/darwin/Framework/CHIP/MTRDeviceAttestationDelegateBridge.mm
Comment thread src/darwin/Framework/CHIP/MTRError.mm Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR preserves more granular commissioning and pairing failure context across controller, secure-channel, DNS-SD, and Darwin-facing error surfaces.

Changes:

  • Adds new CASE, DNS-SD, and ICD-specific CHIP_ERROR_* values and error-string coverage.
  • Extends commissioning status propagation with debug text, operational certificate status, network error values, Wi-Fi band capability data, and ICD LIT state.
  • Enriches Darwin NSError userInfo and BLE metrics with structured underlying failure details.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/protocols/secure_channel/PASESession.cpp Maps additional secure-channel status reports to specific CHIP errors.
src/protocols/secure_channel/CASESession.cpp Refines CASE Sigma failure mapping and logs session-resumption fallback.
src/platform/Darwin/dnssd/DnssdError.cpp Adds Darwin DNS-SD mappings for NXDOMAIN, service-not-running, and timeout.
src/platform/Darwin/BleConnectionDelegateImpl.mm Preserves CoreBluetooth error codes in BLE metrics.
src/lib/core/tests/TestCHIPErrorStr.cpp Adds string-test coverage for new CHIP error constants.
src/lib/core/CHIPError.h Defines new public CHIP error constants.
src/lib/core/CHIPError.cpp Adds human-readable descriptions for new CHIP errors.
src/darwin/Framework/CHIP/MTRError.mm Adds richer CHIP error metadata to bridged NSError objects.
src/darwin/Framework/CHIP/MTRError.h Declares new public NSError userInfo keys.
src/darwin/Framework/CHIP/MTRError_Internal.h Adds an internal bridge overload for extra userInfo.
src/darwin/Framework/CHIP/MTRDeviceAttestationDelegateBridge.mm Adds attestation result and VID/PID context to attestation failure errors.
src/controller/DevicePairingDelegate.h Adds structured CompletionStatus commissioning-failure callback overload.
src/controller/CommissioningDelegate.h Extends commissioning report/status structs with additional failure context.
src/controller/CHIPDeviceController.cpp Preserves new commissioning context and reads supported Wi-Fi bands.
src/controller/AutoCommissioner.cpp Propagates new report fields into final commissioning completion status.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/darwin/Framework/CHIP/MTRError.mm Outdated
Comment thread src/darwin/Framework/CHIP/MTRError.mm Outdated
woody-apple added a commit to woody-apple/connectedhomeip that referenced this pull request May 27, 2026
…p#72211

Two fixes per project-chip#72211 review:

* MTRDeviceAttestationDelegateBridge.mm: switch the attestationUserInfo
  construction from an NSDictionary literal to a mutable dictionary with nil
  checks. NSDictionary literal syntax @{key:value} raises
  NSInvalidArgumentException on a nil value; the @(uint16_t) boxing for the
  VID/PID NSNumbers always succeeds today, but defensive construction guards
  against future DeviceInfoForAttestation struct changes that could make those
  fields nullable.

* MTRError.mm: handle Windows-style backslash path separators in
  errorCode.GetFile() basename stripping. CHIP builds run on Windows for some
  embedded controller targets; without the fallback to strrchr(file, '\\'),
  full Windows build-host paths would land in MTRCHIPErrorSourceFileKey,
  defeating the privacy intent.

Both flagged by gemini-code-assist's automated review.
@github-actions
Copy link
Copy Markdown

PR #72211: Size comparison from b3a691c to bae572a

Full report (5 builds for cc32xx, realtek, stm32)
platform target config section b3a691c bae572a change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568694 568822 128 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596182 596318 136 0.0
RAM 205256 205256 0 0.0
realtek light-switch-app rtl8777g FLASH 688192 688320 128 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729240 729368 128 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 477964 478080 116 0.0
RAM 141476 141476 0 0.0

AES_CCM_decrypt(parsedSigma2.msgR2EncryptedPayload.data(), parsedSigma2.msgR2EncryptedPayload.size(), nullptr, 0,
parsedSigma2.msgR2MIC.data(), parsedSigma2.msgR2MIC.size(), sr2k.KeyHandle(), kTBEData2_Nonce,
kTBEDataNonceLength, parsedSigma2.msgR2EncryptedPayload.data());
VerifyOrReturnError(aesErr == CHIP_NO_ERROR, CHIP_ERROR_CASE_SIGMA_DECRYPT_FAILURE);
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.

I think this is approach is generally frowned upon: dropping the original error (which contains also an original source) and translating it to a different one.

What we would really want is the equivalent of exceptions and some "origin" information, however that is probably too expensive for embedded.

How about having some form of ChipError::MapErrorTo() that would map any chip-error to the given subsitution error, but on large devices (linux/mac/android) we can choose to also log the original error so we do not lose it?

Then I can read ReturnErrorOnFailure(.... .MapErrorTo(CHIP_ERROR_SIGMA_DECRYPT_FAILURE)) and on large devices I would have a propper log. Maybe we can incur the cost of a call on all platforms and log these transforms.

Comment applies for all other places too.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(FYI: This is Claude, on behalf of @woody-apple) Good call — agreed that translating without preserving the original drops useful diagnostic context. Implemented ChipError::MapErrorTo(target) in 1c0a11c:

  • Logs the original error (and source location when CHIP_CONFIG_ERROR_SOURCE is enabled) before returning the target code, so the underlying cause survives in diagnostics.
  • Compiles to nothing when CHIP_DETAIL_LOGGING=0, so it stays cheap on resource-constrained builds.

Applied to all six CASE translation sites (Sigma2/Sigma3 AES decrypt, NOC chain, ECDSA signature). Pattern is now:

ReturnErrorOnFailure(aesErr.MapErrorTo(CHIP_ERROR_CASE_SIGMA_DECRYPT_FAILURE));

Let me know if you'd prefer a different naming or want logging via a separate log id.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(FYI: This is Claude — follow-up) Quick update: had to drop the in-method logging from MapErrorTo in 632d730. Adding the support:text_only_logging dep to lib/core:error created a GN cycle:

core:error -> support:text_only_logging -> support:memory -> core:error

The method now just performs the substitution. Callers that want diagnostic preservation can log the original error themselves at the call site before invoking MapErrorTo.

If you'd prefer the original-error-preserving behavior to live in core, we could add a registered logging hook (function pointer the caller installs from a layer with logging access) — happy to do that if it's worth the API surface. Otherwise the current shape is just a named, explicit substitution helper.

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.

I think in practice nobody will actually do the logging then, so essentially this pattern will become a "we drop the original error to the floor, including any logging.

Could there be alternatives?

  • figure out if we can fix the loop (may be hard indeed, since CHIP_ERROR is very low level)
  • a macro, like we have for the Verify and Return macros, so I have ReturnErrorOnFailure(RemapErrorsTo(..., CHIP_ERROR...))) and this can do logging
  • Have large platforms support a "original error chain" somehow (however then maybe logging is more complex and I am unsure how long the chain could be)

I think macro is the most short-term viable (but keep the MapErrorTo function as well, it is readable)

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.

Another idea would be on big platforms to have something like std::unique_ptr<CHIP_ERROR> mReason and then we can build chains given that large platforms have heap.

I am also questioning these changes somewhat: the description of the PR complains that several errors are being collapsed into a common error. Yet this is exactly what this code does more: takes an error code that could be diverse and collapses it. So I wonder if this change should be split out with a different description instead.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(FYI: This is Claude) Split done — the CASE Sigma2/Sigma3 error-code additions and the VerifyCredentials remap have moved to #72227, where they can be reviewed and merged on their own merits. The remap-vs-preserve-original tradeoff is exactly what that PR's description addresses. This PR (#72211) is now scoped to the structured-context plumbing and no longer touches CASESession.cpp or adds CASE error codes.

woody-apple added a commit to woody-apple/connectedhomeip that referenced this pull request May 28, 2026
…URCE

Per Copilot review on PR project-chip#72211:

- ChipError::GetFile() / GetLine() are only defined when CHIP is built with
  CHIP_CONFIG_ERROR_SOURCE; builds with that flag disabled fail to compile.
  Wrap the source-info userInfo block under the same #if so the keys are
  simply absent on those builds.

- Initialize legacyAdditionalUserInfo to nil at declaration. ARC zero-inits
  __strong locals already, but the explicit nil makes the contract clear.
Copilot AI review requested due to automatic review settings May 28, 2026 00:42
Comment thread src/darwin/Framework/CHIP/MTRError.h Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Comment thread src/darwin/Framework/CHIP/MTRError.mm Outdated
@woody-apple
Copy link
Copy Markdown
Contributor Author

(FYI: This is Claude, on behalf of @woody-apple)

@bzbarsky-apple — your CHANGES_REQUESTED review from 2026-05-28T15:56:41Z is currently blocking the merge gate (pullapprove — 1 group rejected). All of the points you raised in that review have been addressed since; would you mind re-reviewing and dismissing if you're satisfied?

Summary of what's been addressed since your review (commit shas in parens):

Tests added in MTRErrorMappingTests.m and MTRErrorTests.m for the new userInfo keys, the legacy-key compatibility, the IMStatus merge regression, and the source-file/line category accessors. CI is green except for pullapprove.

Happy to address anything else if you have follow-ups; otherwise, please dismiss the CHANGES_REQUESTED and re-approve when convenient. Thanks!

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 29, 2026

PR #72211: Size comparison from 8a8893e to e6ab8f0

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a8893e e6ab8f0 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094196 1094196 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105508 1105508 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593280 1593280 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057208 1057208 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896004 896004 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776932 776932 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789628 789628 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738752 738752 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718908 718908 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568670 568670 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596166 596166 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994072 994072 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798669 798661 -8 -0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100496 1100496 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621488 1621488 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834236 834236 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733900 1733900 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622692 1622692 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470180 1470180 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503316 1503316 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845060 845060 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783808 783808 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688600 688600 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729664 729664 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478372 478372 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813010 813010 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606462 606462 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731374 731374 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851730 851730 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843058 843058 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731864 731864 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795090 795090 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731794 731794 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614510 614510 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841172 841176 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 29, 2026

PR #72211: Size comparison from ff181cb to 640d368

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section ff181cb 640d368 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094196 1094196 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105508 1105508 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593280 1593280 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057208 1057208 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896004 896004 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776932 776932 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789628 789628 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738752 738752 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718908 718908 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568670 568670 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596166 596166 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994056 994056 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798613 798613 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100448 1100448 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621488 1621488 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834236 834236 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733900 1733900 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622692 1622692 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470180 1470180 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503316 1503316 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845060 845060 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783808 783808 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688600 688600 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729664 729664 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478372 478372 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813010 813010 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606462 606462 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731374 731374 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851730 851730 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843058 843058 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731864 731864 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795090 795090 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731794 731794 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614510 614510 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841172 841176 4 0.0
RAM 97364 97364 0 0.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Comment on lines +26 to +43
// Test-only mirror of the basename-stripping logic in NSError(Matter).
// Exposed so unit tests can exercise the path-stripping in isolation.
static inline NSString * _Nullable MTRErrorBasenameForPath(const char * _Nullable path)
{
if (path == NULL || path[0] == '\0') {
return nil;
}
const char * fwdSlash = strrchr(path, '/');
const char * backSlash = strrchr(path, '\\');
const char * basename;
if (fwdSlash == NULL) {
basename = backSlash;
} else if (backSlash == NULL) {
basename = fwdSlash;
} else {
basename = (fwdSlash > backSlash) ? fwdSlash : backSlash;
}
return @((basename != NULL) ? basename + 1 : path);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(FYI: This is Claude) Real concern — addressed in f989eb7. Hoisted MTRErrorBasenameForPath into a shared helper that production code now calls (rather than duplicating the strrchr logic in NSError(Matter)). One implementation, one set of tests.

Comment thread src/lib/core/CHIPError.h Outdated
* window). Often indicates a stale fabric / node ID, or that the device has not yet
* advertised on the operational network.
*/
#define CHIP_ERROR_DNSSD_NXDOMAIN CHIP_CORE_ERROR(0xbe)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(FYI: This is Claude) Keeping CHIP_ERROR_DNSSD_NXDOMAIN as-is. The DNSSD (no-underscore) spelling is actually the dominant pattern in this header — CHIP_ERROR_UNSUPPORTED_DNSSD_SERVICE_NAME (CHIPError.h:1024) and CHIP_ERROR_DNSSD_SERVICE_NOT_RUNNING (CHIPError.h:1817) both predate this PR. CHIP_ERROR_DNS_SD_UNAUTHORIZED (CHIPError.h:1655) is the outlier. Renaming the existing-and-shipping UNAUTHORIZED constant is out of scope here; adding a new one that matches the majority spelling keeps things consistent.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 30, 2026

PR #72211: Size comparison from 4894db9 to 421c2bb

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 4894db9 421c2bb change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 30, 2026

PR #72211: Size comparison from 4894db9 to e31a329

Full report (21 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, psoc6, qpg, realtek, stm32)
platform target config section 4894db9 e31a329 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 30, 2026

PR #72211: Size comparison from 8a162c6 to 74553e8

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 74553e8 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 30, 2026

PR #72211: Size comparison from 8a162c6 to ccafbbd

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 ccafbbd change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 30, 2026

PR #72211: Size comparison from 8a162c6 to 1bbc964

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 1bbc964 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 31, 2026

PR #72211: Size comparison from 8a162c6 to f989eb7

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 f989eb7 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 31, 2026

PR #72211: Size comparison from 8a162c6 to f0dc9dd

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 f0dc9dd change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094196 -20 -0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105508 -16 -0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593280 -16 -0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057208 -16 -0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896004 -16 -0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776932 -12 -0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789628 -12 -0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738752 -20 -0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718908 -20 -0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568670 -20 -0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596166 -12 -0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994072 12 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798661 32 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100496 16 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621488 -20 -0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834236 -12 -0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733900 -16 -0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622692 -16 -0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470180 -16 -0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503316 -16 -0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845060 -20 -0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783808 -4 -0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688600 -24 -0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729664 -16 -0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478372 -12 -0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813010 -18 -0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606462 -18 -0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731374 -18 -0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851730 -18 -0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843058 -18 -0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731864 -18 -0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795090 -18 -0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731794 -18 -0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614510 -18 -0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841176 -14 -0.0
RAM 97364 97364 0 0.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 31, 2026

PR #72211: Size comparison from 8a162c6 to 6962ec9

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 6962ec9 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 31, 2026

PR #72211: Size comparison from 8a162c6 to b92d51f

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 b92d51f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 31, 2026

PR #72211: Size comparison from 8a162c6 to ab53774

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 8a162c6 ab53774 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094216 1094216 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105524 1105524 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593296 1593296 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057224 1057224 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896020 896020 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789640 789640 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738772 738772 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 718928 718928 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994060 994060 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798629 798629 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100480 1100480 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621508 1621508 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834248 834248 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733916 1733916 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622708 1622708 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1470196 1470196 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503332 1503332 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845080 845080 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783812 783812 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813028 813028 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606480 606480 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731392 731392 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851748 851748 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843076 843076 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731882 731882 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795108 795108 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731812 731812 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614528 614528 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841190 841194 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

PR #72211: Size comparison from 8a162c6 to e4fdf39

Full report (5 builds for cc32xx, realtek, stm32)
platform target config section 8a162c6 e4fdf39 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568690 568690 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596178 596178 0 0.0
RAM 205256 205256 0 0.0
realtek light-switch-app rtl8777g FLASH 688624 688624 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478384 478384 0 0.0
RAM 141476 141476 0 0.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.

Comment on lines +56 to +63
// Wrap a CoreBluetooth NSError.code into a kOS-range CHIP_ERROR for triage logging.
// The kOS range only has 24 bits of value space (see ChipError::MaskValue), so any
// NSInteger code that does not fit in [0, 0xFFFFFF] would be silently truncated and
// could collide with unrelated kOS codes. CBError / CBATTError values today are small
// non-negative integers, but we don't want a future API change to silently corrupt
// triage data — so guard the cast (via the unit-tested CBErrorCodeFitsInKOSValueRange
// predicate) and fall back to the caller-provided sentinel (BLE_ERROR_GATT_*) if the
// value is out of range.
Comment on lines +558 to +561
// Preserve the underlying CoreBluetooth error code via the kOS-range CHIP_ERROR
// wrapping pattern used elsewhere in this file (lines 497, 518). The cross-platform
// BLE_ERROR_GATT_WRITE_FAILED still flows through HandleConnectionError so non-Darwin
// consumers see the existing contract.
Comment on lines +66 to +69
if (!CBErrorCodeFitsInKOSValueRange(static_cast<int64_t>(code))) {
ChipLogError(Ble, "CoreBluetooth error.code %ld out of kOS 24-bit range; falling back to BLE_ERROR_GATT_* sentinel",
static_cast<long>(code));
return fallback;
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

PR #72211: Size comparison from cb6d219 to 4fe8baa

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section cb6d219 4fe8baa change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094282 1094282 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105596 1105596 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593384 1593384 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057284 1057284 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896122 896122 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789712 789712 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738836 738836 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719000 719000 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568762 568762 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596250 596250 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994156 994156 0 0.0
RAM 131288 131288 0 0.0
window-app BRD4187C FLASH 1100576 1100576 0 0.0
RAM 130360 130360 0 0.0
lock-app BRD4338a FLASH 798709 798709 0 0.0
RAM 243424 243424 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621602 1621602 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834252 834252 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733644 1733644 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622724 1622724 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1469956 1469956 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503396 1503396 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845048 845048 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783892 783892 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688728 688728 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478388 478388 0 0.0
RAM 141476 141476 0 0.0
telink light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851824 851824 0 0.0
RAM 44332 44332 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731904 731904 0 0.0
RAM 33468 33468 0 0.0
all-devices-app tl7218x FLASH 813116 813116 0 0.0
RAM 97196 97196 0 0.0
bridge-app tl7218x FLASH 731480 731480 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl7218x FLASH 843152 843152 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731974 731974 0 0.0
RAM 55980 55980 0 0.0
all-devices-app tlsr9118bdk40d FLASH 606574 606574 0 0.0
RAM 120152 120152 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614610 614610 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841266 841270 4 0.0
RAM 97364 97364 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795200 795200 0 0.0
RAM 75164 75164 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

PR #72211: Size comparison from cb6d219 to f34abd5

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section cb6d219 f34abd5 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094282 1094282 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105596 1105596 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593384 1593384 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057284 1057284 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896122 896122 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776944 776944 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789712 789712 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738836 738836 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719000 719000 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568762 568762 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596250 596250 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994156 994156 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798709 798709 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100576 1100576 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621602 1621602 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834252 834252 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733644 1733644 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622724 1622724 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1469956 1469956 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503396 1503396 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 845048 845048 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783892 783892 0 0.0
RAM 118912 118912 0 0.0
realtek light-switch-app rtl8777g FLASH 688728 688728 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729680 729680 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478388 478388 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813116 813116 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606574 606574 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731480 731480 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851824 851824 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843152 843152 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731974 731974 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795200 795200 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731904 731904 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614610 614610 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841266 841270 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

PR #72211: Size comparison from ca3e67c to 727d7e2

Full report (35 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section ca3e67c 727d7e2 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094324 1094324 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105636 1105636 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593424 1593424 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057326 1057326 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896162 896162 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776976 776976 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789744 789744 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738868 738868 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719032 719032 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568818 568818 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596298 596298 0 0.0
RAM 205256 205256 0 0.0
efr32 lock-app BRD4187C FLASH 994188 994188 0 0.0
RAM 131288 131288 0 0.0
BRD4338a FLASH 798741 798741 0 0.0
RAM 243424 243424 0 0.0
window-app BRD4187C FLASH 1100608 1100608 0 0.0
RAM 130360 130360 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621642 1621642 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834276 834276 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733676 1733676 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622756 1622756 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1469988 1469988 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503428 1503428 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 844200 844200 0 0.0
RAM 127948 127948 0 0.0
lock-app qpg6200+debug FLASH 782276 782276 0 0.0
RAM 118856 118856 0 0.0
realtek light-switch-app rtl8777g FLASH 688760 688760 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729712 729712 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478416 478416 0 0.0
RAM 141476 141476 0 0.0
telink all-devices-app tl7218x FLASH 813116 813116 0 0.0
RAM 97196 97196 0 0.0
tlsr9118bdk40d FLASH 606574 606574 0 0.0
RAM 120152 120152 0 0.0
bridge-app tl7218x FLASH 731480 731480 0 0.0
RAM 95864 95864 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 851824 851824 0 0.0
RAM 44332 44332 0 0.0
tl7218x FLASH 843152 843152 0 0.0
RAM 99656 99656 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 731974 731974 0 0.0
RAM 55980 55980 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795200 795200 0 0.0
RAM 75164 75164 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 731904 731904 0 0.0
RAM 33468 33468 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 614610 614610 0 0.0
RAM 118496 118496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 841268 841272 4 0.0
RAM 97364 97364 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

PR #72211: Size comparison from 9cf1485 to 3bfe220

Full report (22 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, esp32, nrfconnect, psoc6, qpg, realtek, stm32)
platform target config section 9cf1485 3bfe220 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1094324 1094324 0 0.0
RAM 144882 144882 0 0.0
bl616 lighting-app bl616+thread FLASH 1105636 1105636 0 0.0
RAM 104280 104280 0 0.0
bl616+wifi+shell FLASH 1593424 1593424 0 0.0
RAM 98176 98176 0 0.0
bl702 lighting-app bl702+eth FLASH 1057326 1057326 0 0.0
RAM 108509 108509 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 896162 896162 0 0.0
RAM 105884 105884 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776976 776976 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789744 789744 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738868 738868 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719032 719032 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568818 568818 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596298 596298 0 0.0
RAM 205256 205256 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1621642 1621642 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834276 834276 0 0.0
RAM 157540 157540 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1733676 1733676 0 0.0
RAM 215260 215260 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1622756 1622756 0 0.0
RAM 211548 211548 0 0.0
light cy8ckit_062s2_43012 FLASH 1469988 1469988 0 0.0
RAM 197420 197420 0 0.0
lock cy8ckit_062s2_43012 FLASH 1503428 1503428 0 0.0
RAM 225252 225252 0 0.0
qpg lighting-app qpg6200+debug FLASH 844200 844200 0 0.0
RAM 127948 127948 0 0.0
lock-app qpg6200+debug FLASH 782276 782276 0 0.0
RAM 118856 118856 0 0.0
realtek light-switch-app rtl8777g FLASH 688760 688760 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729712 729712 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478416 478416 0 0.0
RAM 141476 141476 0 0.0

…D / BLE error preservation

Consumers of MTRError currently see most commissioning failures surface
as a single "Error Domain=com.apple.MatterSupport Code=1 (null)". This
change plumbs structured detail into the bridged NSError so callers can
disambiguate failure modes, and tightens Darwin's CoreBluetooth / DNS-SD
error mapping at the same time.

Scope: this commit is intentionally limited to the Darwin framework
(MTRError), two new core DNS-SD CHIP_ERROR codes + their descriptions,
and the Darwin platform glue (DnssdError mapping, BLE error
preservation). It is additive only - it touches 13 files and reverts
nothing on master. The earlier core-controller plumbing
(CompletionStatus widening, DevicePairingDelegate overload, PASE/CASE
status-code mapping) is already merged on master via project-chip#72227/project-chip#72228 and is
NOT part of this commit.

Darwin framework (MTRError):
- Add NSError userInfo keys with unprefixed string values
  (MTR_PROVISIONALLY_AVAILABLE):
  MTRAttestationVerificationResultKey (= @"attestationVerificationResult")
  MTRDeviceBasicInformationVendorIDKey (= @"deviceBasicInformationVendorID")
  MTRDeviceBasicInformationProductIDKey (= @"deviceBasicInformationProductID")
  MTRUnderlyingErrorCodeKey (= @"errorCode" - same string as the key
    already documented for MTRErrorCodeGeneralError).
  The Device*BasicInformation* names reflect what the keys actually
  store: the VID/PID the device asserts in its BasicInformation cluster,
  which is NOT guaranteed to match the device's certification declaration
  (mismatch is itself one of the attestation-failure modes).
- Surface AttestationVerificationResult enum + BasicInformation VID/PID
  in attestation-failure NSErrors.
- New errorForCHIPErrorCode:logContext:additionalUserInfo: overload
  lets bridge call sites attach attestation metadata without losing the
  existing MTRErrorHolder association, and merges additionalUserInfo on
  both the IM-status and core-error bridge paths (framework keys win).
- NSError (Matter) category: mtr_underlyingMatterErrorSourceFile and
  mtr_underlyingMatterErrorSourceLine read source location on demand from
  the existing MTRErrorHolder associated object via a single helper.

DNS-SD codes (src/lib/core):
- New CHIP_ERROR_DNSSD_NXDOMAIN (0xBE) - DNS-SD operational instance
  does not exist.
- New CHIP_ERROR_DNSSD_SERVICE_NOT_RUNNING (0xC7) - DNS-SD platform
  service is not running.
- Description arms in CHIPError.cpp; test entries in
  TestCHIPErrorStr.cpp; ERROR_CODES.md regenerated.

Platform/Darwin:
- DnssdError.cpp: map kDNSServiceErr_NoSuchName / NoSuchRecord to
  CHIP_ERROR_DNSSD_NXDOMAIN, kDNSServiceErr_ServiceNotRunning to
  CHIP_ERROR_DNSSD_SERVICE_NOT_RUNNING, kDNSServiceErr_Timeout to
  CHIP_ERROR_TIMEOUT (instead of collapsing to CHIP_ERROR_INTERNAL).
- BleConnectionDelegateImpl.mm: WrapCBErrorCodeAsKOS preserves the
  CoreBluetooth NSError.code in a kOS-range CHIP_ERROR for triage, with
  a 24-bit overflow guard that falls back to the cross-platform
  BLE_ERROR_GATT_* sentinel; the existing HandleConnectionError contract
  is unchanged for non-Darwin consumers.

Tests:
- MTRErrorMappingTests.m (new): MTRUnderlyingErrorCodeKey population +
  round-trip via errorToCHIPIntegerCode:, pins all 4 userInfo key string
  values (rename guard), proves the new key resolves to the @"errorCode"
  string already documented for MTRErrorCodeGeneralError, and guards
  additionalUserInfo merge on both the IM-status and core-error paths.
- MTRErrorTests.m: basename-only source-path assertions +
  MTRErrorBasenameForPath mixed-separator coverage.
- TestCHIPErrorStr.cpp: the 2 new DNS-SD codes (harness asserts each
  listed code yields a non-default description).

Known test-coverage limitations:
- DnssdError.cpp's DNSServiceErrorType -> CHIP_ERROR mapping has no
  direct unit test: src/platform/Darwin has no unit-test target, and
  standing one up for a 3-case switch is disproportionate. The underlying
  error codes are unit-tested in TestCHIPErrorStr.cpp.
- WrapCBErrorCodeAsKOS is a file-local static inline; testing it directly
  would require exposing a triage helper in the platform API surface,
  which is not worth the API cost for a defensive overflow guard
  (CoreBluetooth codes are documented small non-negative integers).
- Attestation-key population in MTRDeviceAttestationDelegateBridge.mm
  requires an end-to-end attestation failure to exercise and is not unit
  tested.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

PR #72211: Size comparison from 9cf1485 to 38cf510

Full report (10 builds for cc13x4_26x4, cc32xx, nrfconnect, realtek, stm32)
platform target config section 9cf1485 38cf510 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776976 776976 0 0.0
RAM 103388 103388 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 789744 789744 0 0.0
RAM 108676 108676 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 738868 738868 0 0.0
RAM 97596 97596 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719032 719032 0 0.0
RAM 97636 97636 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 568818 568818 0 0.0
RAM 205056 205056 0 0.0
lock CC3235SF_LAUNCHXL FLASH 596298 596298 0 0.0
RAM 205256 205256 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 834276 834276 0 0.0
RAM 157540 157540 0 0.0
realtek light-switch-app rtl8777g FLASH 688760 688760 0 0.0
RAM 101764 101764 0 0.0
lighting-app rtl8777g FLASH 729712 729712 0 0.0
RAM 102044 102044 0 0.0
stm32 light STM32WB5MM-DK FLASH 478416 478416 0 0.0
RAM 141476 141476 0 0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

5 participants