)]}'
{
  "commit": "c17fd97dad04a154ce6d26b0a8ffc4e868fdfa23",
  "tree": "454f04d70c35aa454301a42f03439a68f8e9bd02",
  "parents": [
    "085138295acd3af46931a8197d9e564dc11becac"
  ],
  "author": {
    "name": "Hasty Granbery",
    "email": "hasty@granbery.org",
    "time": "Fri Aug 23 06:57:11 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 23 13:57:11 2024 +0000"
  },
  "message": "[HVAC] Sync atomic write error order with spec (#34936)\n\n* Add support for Presets attributes and commands to the Thermostat cluster\n\nClean up the Thermostat cluster and remove the TemperatureSetpointHoldPolicy attribute\nand SetTemperatureSetpointHoldPolicy command\n\n* Restyled by whitespace\n\n* Restyled by clang-format\n\n* Restyled by gn.\n\n* Fix build error for Linux configure build of all-clusters-app\n\n* Fix Darwin CI issues\n\nEditorial fixes\n\n* Restyled by clang-format\n\n* More fixes\n\n* Restyled by clang-format\n\n* BUILD.gn fixes for CI\n\n* Apply suggestions from code review\n\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\n\n* Address review comments.\n\n* Restyled by clang-format\n\n* Regenerate Thermostat XML from spec\n\n* Move atomic enum to global-enums.xml, actually\n\n# Conflicts:\n#\tsrc/app/zap-templates/zcl/data-model/chip/global-structs.xml\n\n* Regenerate XML and convert thermostat-server to atomic writes\n\n* Pull in ACCapacityFormat typo un-fix\n\n* Update Test_TC_TSTAT_1_1 to know about AtomicResponse command.\n\n* Restyled patch\n\n* Fix weird merge with upstream\n\n* Fix emberAfIsTypeSigned not understanding temperature type\n\n* Merge fixes from atomic write branch\n\n* Relocate thermostat-manager sample code to all-clusters-common\n\n* Fix g++ build error on linux\n\n* Fix C formatter for long int, cast whole expression\n\n* Sync cast fix with master\n\n* Add thermostat-common dependency to thermostat app under linux\n\n* Remove MatterPostAttributeChangeCallback from thermostat-manager, as it conflicts with other implementations\n\n* Convert Atomic enums and structs to global\n\n* Restyled patch\n\n* Apply suggestions from code review\n\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\n\n* Regen with alchemy 0.6.1\n\n* Updates based on comments\n\n* Add TC_MCORE_FS_1_3.py test implementation (#34650)\n\n* Fix most TC-SWTCH-2.4 remaining issues (#34677)\n\n- Move 2.4 in a better place in the file\n- Add test steps properly\n- Allow default button press position override\n\nIssue #34656\n\nTesting done:\n\n- Test still passes on DUT with automation\n\n* Initial test script for Fabric Sync TC_MCORE_FS_1_2 (#34675)\n\n* Initial test script for Fabric Sync TC_MCORE_FS_1_2\n\n* Apply suggestions from code review\n\nCo-authored-by: C Freeman \u003ccecille@google.com\u003e\n\n* Address Review Comments\n\n* Address review comments\n\n* Fix default timeout after other timeouts changed\n\n* Restyled by autopep8\n\n* Fix linter error\n\n---------\n\nCo-authored-by: C Freeman \u003ccecille@google.com\u003e\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\n\n* Test automation for FabricSync ICD BridgedDeviceBasicInfoCluster (#34628)\n\n* WIP Bridged ICD, commissioning to both fabrics\n\n* wip testing sending KeepActive\n\n* wip most steps implemented\n\n* using SIGSTOP and SIGCONT to control ICD server pausing\n\n* Update src/python_testing/TC_BRBINFO_4_1.py\n\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\n\n* comments addressed\n\n* more comments addressed\n\n* lint pass\n\n* Update src/python_testing/TC_BRBINFO_4_1.py\n\nCo-authored-by: C Freeman \u003ccecille@google.com\u003e\n\n* comments addressed, incl TH_SERVER configurable\n\n* added setupQRCode and setupManualCode as options for DUT commissioning\n\n* Restyled by autopep8\n\n* Restyled by isort\n\n* Update src/python_testing/TC_BRBINFO_4_1.py\n\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\n\n* Update src/python_testing/TC_BRBINFO_4_1.py\n\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\n\n* Update src/python_testing/TC_BRBINFO_4_1.py\n\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\n\n* comments addressed\n\n* Restyled by autopep8\n\n---------\n\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\nCo-authored-by: C Freeman \u003ccecille@google.com\u003e\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\n\n* ServiceArea test scripts (#34548)\n\n* initial commit\n\n* fix bugs\n\n* fix issues reported by the linter\n\n* fix bug in checking for unique areaDesc\n\n* add TC 1.5\n\n* Update src/python_testing/TC_SEAR_1_2.py\n\nCo-authored-by: William \u003chicklin@users.noreply.github.com\u003e\n\n* Update src/python_testing/TC_SEAR_1_2.py\n\nCo-authored-by: William \u003chicklin@users.noreply.github.com\u003e\n\n* address code review comments\n\n* fix issue introduced by the previous commit\n\n* address code review feedback\n\n* Update src/python_testing/TC_SEAR_1_2.py\n\nCo-authored-by: Kiel Oleson \u003ckielo@apple.com\u003e\n\n* address code review feedback\n\n* remove PICS checked by the TC_SEAR_1.6\n\n* more code review updates\n\n* Restyled by autopep8\n\n---------\n\nCo-authored-by: William \u003chicklin@users.noreply.github.com\u003e\nCo-authored-by: Kiel Oleson \u003ckielo@apple.com\u003e\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\n\n* Remove manual tests for Thermostat presets (#34679)\n\n* Dump details about leaked ExchangeContexts before aborting (#34617)\n\n* Dump details about leaked ExchangeContexts before aborting\n\nThis is implemented via a VerifyOrDieWithObject() variant of the existing\nVerifyOrDie() macro that calls a DumpToLog() method on the provided object if\nit exists (otherwise this is simply a no-op).\n\nIf CHIP_CONFIG_VERBOSE_VERIFY_OR_DIE is not enabled, VerifyOrDieWithObject()\nsimply behaves like a plain VerifyOrDie(). DumpToLog() implementations can use\nChipLogFormatRtti to log type information about an object (usually a delegate);\nif RTTI is disabled this simply outputs whether the object was null or not.\n\n* Address review comments\n\n* Make gcc happy and improve documentation\n\n* Remove unused include\n\n* Fix compile error without CHIP_CONFIG_VERBOSE_VERIFY_OR_DIE\n\n* Avoid unused parameter warning\n\n* [TI] CC13x4_26x4 build fixes (#34682)\n\n* lwip pbuf, map file, and hex creation when OTA is disabled\r\n\r\n* added cc13x4 family define around the non OTA hex creation\r\n\r\n* whitespace fix\r\n\r\n* reversed custom factoy data flash with cc13x4 check\r\n\r\n* more whitespace fixes\n\n* [ICD] Add missing polling function to NoWifi connectivity manager (#34684)\n\n* Add missing polling function to NoWifi connectivity manager\n\n* Update GenericConnectivityManagerImpl_NoWiFi.h\n\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\n\n---------\n\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\n\n* [OPSTATE] Add Q test script for CountdownTime (#34632)\n\n* Add Q test\n\n* Added test to test set\n\n* Remove unused var\n\n* Restyled by autopep8\n\n* Restyled by isort\n\n* Fix name\n\n* Use pics over other method\n\n* Removed unused stuff\n\n* Added pipe commands\n\n* Fix reset\n\n* Get example to report appropriate changes.\n\n* WiP\n\n* Added some comments\n\n* Changes to make things work\n\n* Removed dev msgs\n\n* Missed some\n\n* Removed dev msgs\n\n* Straggler\n\n* Restyled by clang-format\n\n* Restyled by autopep8\n\n* Restyled by isort\n\n* Commented unused var\n\n* Update examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp\n\n* Fix bug\n\n---------\n\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\n\n* YAML update to BRBINFO, ProductId (#34513)\n\n* Bridged Device Information Cluster, Attribute ProductID test reflects marking as O, not X\r\n\r\n* Update src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml\r\n\r\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\r\n\r\n* corrected pics\r\n\r\n* corrected pics\r\n\r\n* WIP Bridged ICD, commissioning to both fabrics\r\n\r\n* wip testing sending KeepActive\r\n\r\n* update to bridged-device-basic-information.xml and zap generated files\r\n\r\n* removed unrelated file\r\n\r\n---------\r\n\r\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\r\nCo-authored-by: Andrei Litvin \u003candy314@gmail.com\u003e\n\n* Fix simplified Linux tv-casting-app gn build error. (#34692)\n\n* adding parallel execution to restyle-diff (#34663)\n\n* adding parallel execution to restyle-diff\n\n* using xargs to call restyle-paths\n\n* fixing Copyright year\n\n* restyle the restyler\n\n* Add some bits to exercise global structs/enums to Unit Testing cluster. (#34540)\n\n* Adds things to the Unit Testing cluster XML.\n* This requires those things to be enabled in all-clusters-app,\n  all-clusters-minimal-app, and one of the chef contact sensors to pass CI.\n* That requires an implementation in test-cluster-server\n* At which point might as well add a YAML test to exercise it all.\n\n* [Silabs] Port platform specific Multi-Chip OTA work  (#34440)\n\n* Pull request #1836: Cherry multi ota\n\nMerge in WMN_TOOLS/matter from cherry-multi-ota to silabs_slc_1.3\n\nSquashed commit of the following:\n\ncommit 4320bb46571658bc44fb82345348265def394991\nAuthor: Michael Rupp \u003cmichael.rupp@silabs.com\u003e\nDate:   Fri May 10 14:26:07 2024 -0400\n\n    remove some unwanted diffs in provision files\n\ncommit be160931dc600de7e7ead378b70d6a43c3945e46\nAuthor: Michael Rupp \u003cmichael.rupp@silabs.com\u003e\nDate:   Fri May 10 14:24:25 2024 -0400\n\n    revert changes to generator.project.mak\n\ncommit 14b6605887166e6d5284a61feb2bf407d850bdcf\nAuthor: Michael Rupp \u003cmichael.rupp@silabs.com\u003e\nDate:   Fri May 10 13:06:12 2024 -0400\n\n    revert NVM key changes and script changes\n\n... and 8 more commits\n\n* Restyled by whitespace\n\n* Restyled by clang-format\n\n* Restyled by gn\n\n* Restyled by autopep8\n\n* remove unused libs caught by linter\n\n* update doctree with new readmes\n\n* rerun CI, cirque failing for unknown reasons\n\n* fix include guards in provision examples\n\n* Restyled by clang-format\n\n---------\n\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\n\n* Add python tests for Thermostat presets feature (#34693)\n\n* Add python tests for Thermostat presets feature\n\n* Restyled by autopep8\n\n* Restyled by isort\n\n* Update the PICS code for presets attribute\n\n---------\n\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\n\n* removing unneccessary git fetch (#34698)\n\n* Restyle patch\n\n* Regen to fix ordering of global structs\n\n* Apply suggestions from code review\n\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\n\n* Return correct AtomicResponse when committing or rolling back\n\n* Patch tests for atomic write of presets\n\n* Fix tests to work with the new setup.\n\nSpecific changes:\n\n* Enable SetActivePresetRequest command in all-clusters-app.\n* Fix assignment of a PresetStructWithOwnedMembers to another\n  PresetStructWithOwnedMembers to actually work correctly.\n* Move constraint checks that happen on write from commit to write.\n* Fix sending of atomic responses to not have use-stack-after-return.\n* Fix PICS for the tests involved.\n\n* Fix PICS values for atomic requests\n\n* Remove PresetsSchedulesEditable and QueuedPreset from various places\n\n* Restyled patch\n\n* Restyled patch, again\n\n* Remove PICS value for PresetsSchedulesEditable\n\n* clang-tidy fixes\n\n* clang-tidy fixes\n\n* Clear associated atomic writes when fabric is removed\n\n* Add tests for fabric removal and lockout of clients outside of atomic write\n\n* Python linter\n\n* Restyled patch\n\n* Clear timer when fabric is removed\n\n* Check for open atomic write before resetting\n\n* Revert auto delegate declaration on lines where there\u0027s no collision\n\n* Allow Thermostat delegate to provide timeout for atomic requests\n\n* Relocate thermostat example code to thermostat-common\n\n* Remove thermostat-manager code, replace with thermostat delegate\n\n* Sync atomic write error order with spec\n\n* Restyle patch\n\n* Drop memset of atomic write sessions\n\n* Add PreCommit stage to allow rollback of multiple attributes when only one fails\n\n* Separate OnTimerExpired method, vs ResetWrite\n\n* Method documentation\n\n* Apply suggestions from code review\n\nCo-authored-by: Nivi Sarkar \u003c55898241+nivi-apple@users.noreply.github.com\u003e\n\n* Remove unused InWrite check\n\n* Drop imcode alias\n\n* Switch AtomicWriteState to enum class\n\n* DRY up atomic write manager\n\n* Apply suggestions from code review\n\nCo-authored-by: Nivi Sarkar \u003c55898241+nivi-apple@users.noreply.github.com\u003e\n\n* Drop duplicate doc comments\n\n* Rename GetAtomicWriteScopedNodeId to GetAtomicWriteOriginatorScopedNodeId\n\n* Updates based on comments\n\n* Add MatterReportingAttributeChangeCallback calls for updated attributes\n\n* Relocate thermostat example code to thermostat-common, and remove thermostat-manager\n\n* Merge atomic write code back into thermostat-server\n\n* Apply suggestions from code review\n\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\n\n* Fix build after suggestions\n\n* Actually track attribute IDs associated with atomic write\n\n* Only commit presets if all attribute precommits were successful\n\n* Fix scope on err\n\n* Add documentation to methods\n\n* Remove duplicate preset check.\n\n* Move various functions into anonymous namespaces, or Thermostat namespace\n\n* Drop impossible non-atomic attribute status after rollback\n\n* Namespace workaround for compilers on other platforms\n\n* Apply suggestions from code review\n\n---------\n\nCo-authored-by: Nivedita Sarkar \u003cnivedita_sarkar@apple.com\u003e\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\nCo-authored-by: Nivi Sarkar \u003c55898241+nivi-apple@users.noreply.github.com\u003e\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\nCo-authored-by: Terence Hampson \u003cthampson@google.com\u003e\nCo-authored-by: Tennessee Carmel-Veilleux \u003ctennessee.carmelveilleux@gmail.com\u003e\nCo-authored-by: Chris Letnick \u003ccletnick@google.com\u003e\nCo-authored-by: C Freeman \u003ccecille@google.com\u003e\nCo-authored-by: Douglas Rocha Ferraz \u003crochaferraz@google.com\u003e\nCo-authored-by: Petru Lauric \u003c81822411+plauric@users.noreply.github.com\u003e\nCo-authored-by: William \u003chicklin@users.noreply.github.com\u003e\nCo-authored-by: Kiel Oleson \u003ckielo@apple.com\u003e\nCo-authored-by: Karsten Sperling \u003c113487422+ksperling-apple@users.noreply.github.com\u003e\nCo-authored-by: Anu Biradar \u003c104591549+abiradarti@users.noreply.github.com\u003e\nCo-authored-by: mkardous-silabs \u003c84793247+mkardous-silabs@users.noreply.github.com\u003e\nCo-authored-by: Rob Bultman \u003crob.Bultman@gmail.com\u003e\nCo-authored-by: Andrei Litvin \u003candy314@gmail.com\u003e\nCo-authored-by: Shao Ling Tan \u003c161761051+shaoltan-amazon@users.noreply.github.com\u003e\nCo-authored-by: Amine Alami \u003c43780877+Alami-Amine@users.noreply.github.com\u003e\nCo-authored-by: Michael Rupp \u003c95718139+mykrupp@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ed228b51b2cb323a2677c6368e1bd20bee4a1d7a",
      "old_mode": 33188,
      "old_path": "examples/all-clusters-app/linux/BUILD.gn",
      "new_id": "baac52014d3c3b8c822fc786a14529334aa50019",
      "new_mode": 33188,
      "new_path": "examples/all-clusters-app/linux/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "71c0eccfcfae508fb113f997252ddd7634e33ddf",
      "old_mode": 33188,
      "old_path": "examples/thermostat/linux/BUILD.gn",
      "new_id": "0683b39abb4cc6ebd8b2a359f4f1ecfd37aeffe0",
      "new_mode": 33188,
      "new_path": "examples/thermostat/linux/BUILD.gn"
    },
    {
      "type": "delete",
      "old_id": "274f66c66917cf0d7a7e43041474b2717c8d31f3",
      "old_mode": 33188,
      "old_path": "examples/thermostat/linux/include/thermostat-manager.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "2279f02bef39637261f7f8b04f5f5bf9efeea6a1",
      "old_mode": 33188,
      "old_path": "examples/thermostat/linux/main.cpp",
      "new_id": "b9f82696e8ce7935b5c9a8001a2245a7cc88e136",
      "new_mode": 33188,
      "new_path": "examples/thermostat/linux/main.cpp"
    },
    {
      "type": "delete",
      "old_id": "ea1f4375c1649de2257a06ae7541828d4e927a94",
      "old_mode": 33188,
      "old_path": "examples/thermostat/linux/thermostat-manager.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "93a0c7540fb93a056ae9c894027957e4f3c6f5bd",
      "old_mode": 33188,
      "old_path": "examples/thermostat/thermostat-common/BUILD.gn",
      "new_id": "1f8f839b4a4f3a4bd65aee0b45f431b5092b09be",
      "new_mode": 33188,
      "new_path": "examples/thermostat/thermostat-common/BUILD.gn"
    },
    {
      "type": "rename",
      "old_id": "6bf9d02cea462ffc7fb0372ccf710c0aceae95f8",
      "old_mode": 33188,
      "old_path": "examples/thermostat/linux/include/thermostat-delegate-impl.h",
      "new_id": "9edf13f839df44539fc8e4e13ef4b62d120c0f88",
      "new_mode": 33188,
      "new_path": "examples/thermostat/thermostat-common/include/thermostat-delegate-impl.h",
      "score": 92
    },
    {
      "type": "rename",
      "old_id": "b931db20b7c4f792d66f0169120553130bd10df4",
      "old_mode": 33188,
      "old_path": "examples/thermostat/linux/thermostat-delegate-impl.cpp",
      "new_id": "8c411cd5a9176ebf163ffdb6ffd0a0f11b32195f",
      "new_mode": 33188,
      "new_path": "examples/thermostat/thermostat-common/src/thermostat-delegate-impl.cpp",
      "score": 75
    },
    {
      "type": "modify",
      "old_id": "3e4448a3bee46729828f59e280d71849fc7c89f2",
      "old_mode": 33188,
      "old_path": "src/app/chip_data_model.gni",
      "new_id": "01d47a47cb71845844ae99c446563a287582b25b",
      "new_mode": 33188,
      "new_path": "src/app/chip_data_model.gni"
    },
    {
      "type": "modify",
      "old_id": "0f89f69468099b918867af6a384154c8486182a4",
      "old_mode": 33188,
      "old_path": "src/app/clusters/thermostat-server/thermostat-delegate.h",
      "new_id": "ccb690a34fba602e503c739e561b4c27f94e98ea",
      "new_mode": 33188,
      "new_path": "src/app/clusters/thermostat-server/thermostat-delegate.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2a6e52e504887ee9b9e1d7bccf9f8dcb277f2d62",
      "new_mode": 33188,
      "new_path": "src/app/clusters/thermostat-server/thermostat-server-atomic.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e57c2f9c95f8fd524e35ce805fa9f9b86f0969da",
      "new_mode": 33188,
      "new_path": "src/app/clusters/thermostat-server/thermostat-server-presets.cpp"
    },
    {
      "type": "modify",
      "old_id": "8fe70211eeda1aeaa94087419bd8e4cdddef867f",
      "old_mode": 33188,
      "old_path": "src/app/clusters/thermostat-server/thermostat-server.cpp",
      "new_id": "fe8ccf8aab3cf02038416bc3266c3f98e7630374",
      "new_mode": 33188,
      "new_path": "src/app/clusters/thermostat-server/thermostat-server.cpp"
    },
    {
      "type": "modify",
      "old_id": "ddede8a9bb13f9d869d90a081602d17b9dfbdb34",
      "old_mode": 33188,
      "old_path": "src/app/clusters/thermostat-server/thermostat-server.h",
      "new_id": "cc941cfa766d9233748cf09bbef84590d95b6f55",
      "new_mode": 33188,
      "new_path": "src/app/clusters/thermostat-server/thermostat-server.h"
    },
    {
      "type": "modify",
      "old_id": "5c289ced50604ebdd465233917dde434eb057e9b",
      "old_mode": 33188,
      "old_path": "src/python_testing/TC_TSTAT_4_2.py",
      "new_id": "563d6f3f2eddfc2051b35a3ba3e8a3eb636c9d4f",
      "new_mode": 33188,
      "new_path": "src/python_testing/TC_TSTAT_4_2.py"
    }
  ]
}
