)]}'
{
  "commit": "8485f1d1bcaf410456239d84910cd131d02494de",
  "tree": "fbb17d0b28c4d41fc67566bd4cceab2bd85ccedf",
  "parents": [
    "3fad7e8c8f86507744a820dff4300b4bde3b5b67"
  ],
  "author": {
    "name": "Mahesh",
    "email": "92411857+pimpalemahesh@users.noreply.github.com",
    "time": "Tue Mar 10 17:49:42 2026 +0530"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 10 08:19:42 2026 -0400"
  },
  "message": "Decouple Closure Control Cluster (#43328)\n\n* Initial implementation of code driven closure control cluster\n\n* use NotifyAttributeChange instead of MarkDirty from ClusterContext\n\n* Add tests for closure-control cluster\n\n* Remove logic files and tests\n- set feature and init params in Endpoint constructor in closure-app\n- restyle changes\n\n* Add arrays for global cluster init parameters\n\n* Set Cluster Instance in Endpoint Init\n- Get cluster pointer instead of reference\n\n* Remove closure control logic shim files as we don\u0027t require logic here\n\n* Remove Matter context shim file as it is internal to the cluster now\n\n* Handle optional attributes in cluster\n- fix silab example\n\n* Restyled by clang-format\n\n* Use Optional Attribute Set for optional attributes\n\n* Update Getters for closure control cluster\n\n* Remove extra functions and variables\n\n* Review comments\n- decouple timer delegate\n- update tests\n\n* Fix silabs example build failure\n\n* removed matter context class\n- Addressed review comments\n\n* Remove extra CHIP_NO_ERROR\n\n* Fix tests\n\n* Remove backward compartible header files\n\n* documentation update\n\n* Add bound check for endpoint Id\n\n* Fix CI: replace old file headers with new Headers\n\n* Restyled by clang-format\n\n* Remove closure-control-cluster-delegate backward compatible file\n\n* Add null check before dereferencing cluster instance\n\n* Add attribute update callback functions in closure control delegate\n- Add tests for attribute update callbacks\n\n* fix tests, Addressed Review comments\n\n* Remove unused headers, review comments\n\n* Restyled changes\n\n---------\n\nCo-authored-by: Andrei Litvin \u003candy314@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1cb8e8b152a2027b0e123c677c5ed85045849ba7",
      "old_mode": 33188,
      "old_path": "examples/closure-app/closure-common/closure-app.matter",
      "new_id": "9feee1d8381f242106c7bc90a55f94f81761c43b",
      "new_mode": 33188,
      "new_path": "examples/closure-app/closure-common/closure-app.matter"
    },
    {
      "type": "modify",
      "old_id": "bb10aaca09dbc3ae07ae310705b49eacdf73ca49",
      "old_mode": 33188,
      "old_path": "examples/closure-app/closure-common/include/ClosureControlEndpoint.h",
      "new_id": "6c1d317e56e72603519b5b0eedc480edcbb9004e",
      "new_mode": 33188,
      "new_path": "examples/closure-app/closure-common/include/ClosureControlEndpoint.h"
    },
    {
      "type": "modify",
      "old_id": "85647c1dffb60537ef68011d141f5f032ef1d3ea",
      "old_mode": 33188,
      "old_path": "examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp",
      "new_id": "4237dbc57d7b74c1ba9b5ba7d62c5d9484f3dc81",
      "new_mode": 33188,
      "new_path": "examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp"
    },
    {
      "type": "modify",
      "old_id": "0bb37112de34ba0512c22a652b2f63367ebe99d3",
      "old_mode": 33188,
      "old_path": "examples/closure-app/linux/ClosureManager.cpp",
      "new_id": "9477ab50895316558a346cb3b7c016cb84ec2a49",
      "new_mode": 33188,
      "new_path": "examples/closure-app/linux/ClosureManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "5bea5b94cfbd221f312f484cebedea993afecf02",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/data_model/closure-thread-app.matter",
      "new_id": "f3a8ee7f040d83f76d5c71b1766b929b098a6f28",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/data_model/closure-thread-app.matter"
    },
    {
      "type": "modify",
      "old_id": "bda83e00fa072fd757f86ee6d768be73d1467495",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/data_model/closure-wifi-app.matter",
      "new_id": "42c44e2f8657d0d4634eb44a876ec6b71cdbfa9b",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/data_model/closure-wifi-app.matter"
    },
    {
      "type": "modify",
      "old_id": "c85dd6719952de7eba74aeef4757098bd70c0c37",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/include/ClosureManager.h",
      "new_id": "7ec5b827fafef7c1adfec9774e216bdf1ab8c2e5",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/include/ClosureManager.h"
    },
    {
      "type": "modify",
      "old_id": "a318f2a0eb7125f6130d101d78b802e518b0c75d",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/include/ClosureUI.h",
      "new_id": "950fd0452313f6e7c5695cc4c3820ac2c341f4eb",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/include/ClosureUI.h"
    },
    {
      "type": "modify",
      "old_id": "20571458ac6ac99ee6250778f66eee640883c2d5",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/src/AppTask.cpp",
      "new_id": "ba921f394a44fcf8c0489669281283de488b8630",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/src/AppTask.cpp"
    },
    {
      "type": "modify",
      "old_id": "4897f3e8e81c30428a1f9746670b3e44e637e6e2",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/src/ClosureManager.cpp",
      "new_id": "2d41f6ee7eafb2fc796bac9cbf0bb49f1d6bb9a4",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/src/ClosureManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "fe66cdf894b471a556b36585accba0bd6bedd093",
      "old_mode": 33188,
      "old_path": "examples/closure-app/silabs/src/DataModelCallbacks.cpp",
      "new_id": "9f681d41717370e7a67eca61ea5a2a26eef249ea",
      "new_mode": 33188,
      "new_path": "examples/closure-app/silabs/src/DataModelCallbacks.cpp"
    },
    {
      "type": "modify",
      "old_id": "3c6f7b8be330aa1dff7665f5ecbb8cef32fcf61c",
      "old_mode": 33188,
      "old_path": "src/BUILD.gn",
      "new_id": "fa04775dc123d798aad689f405e7023a1c61e711",
      "new_mode": 33188,
      "new_path": "src/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "74944354e339270dfdda15d6bb55428a1c3c68b8",
      "old_mode": 33188,
      "old_path": "src/app/clusters/BUILD.gn",
      "new_id": "dea746d10822bbcd71f55f387cf9187632c5c678",
      "new_mode": 33188,
      "new_path": "src/app/clusters/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "3e87c7a6da476fa0855b7726591b0b101a03e3b9",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/BUILD.gn",
      "new_id": "d4ed5f8ac10d60bd95493b1b56e5866e4188735f",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "898d0ee33f65b068b5e57ce14836bc23c94825af",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlCluster.cpp",
      "new_id": "0752901c58824db0a2a146d97c2f804fd24a2afb",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/ClosureControlCluster.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c43034d536ac43bd922ec6b7844b37eda426d73",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlCluster.h",
      "new_id": "b2b0423ffdf911cec1b88317ccd3ba34bb3c862d",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/ClosureControlCluster.h"
    },
    {
      "type": "modify",
      "old_id": "a14e2e3b4f2d14c9ac35b1b98bd52746f41d86a6",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlClusterDelegate.h",
      "new_id": "55b10ca595f2b886c832f677358dcb999239a873",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/ClosureControlClusterDelegate.h"
    },
    {
      "type": "delete",
      "old_id": "85394b9585405ecf40eda46faab84b7b3d4b7af8",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlClusterLogic.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "4a1e626b51ce57d01ea577d7b4e92ea851bf0dba",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlClusterLogic.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "079ca785063ef02c5ca56e311cf08e8277caa255",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlClusterMatterContext.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9211b240717dc310da057ee512acdf4d3cfeb2d5",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/ClosureControlClusterObjects.h",
      "new_id": "cdeaeab44c404fdeca4cf81dd8b0f56409293cb7",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/ClosureControlClusterObjects.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ddd64770b83a97415d839b30d7fca1b6d90c7176",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/CodegenIntegration.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe4af96aff6154d18094c34ab5ef07cf4c484466",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/CodegenIntegration.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e72e125034955d92d6e8939090b20af994215aae",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/README.md"
    },
    {
      "type": "modify",
      "old_id": "531ffdaae4ffc41a4bd7a5091d33aa73c9e78be5",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/app_config_dependent_sources.cmake",
      "new_id": "59b7226a303f18f6bd27be7ed7b73a6857497863",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/app_config_dependent_sources.cmake"
    },
    {
      "type": "modify",
      "old_id": "93e40899295aaa5ed5c73302dcc373fdba6f10af",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/app_config_dependent_sources.gni",
      "new_id": "000fa839f7c5e5c951d080afc04dc76694de46a0",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/app_config_dependent_sources.gni"
    },
    {
      "type": "delete",
      "old_id": "73a39fe341d1af22aa6eb5be58a2429ee992a115",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/closure-control-cluster-delegate.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "8b9dd0ff52bc6ff3d6c04b179c2d13cdcf957ef1",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/closure-control-cluster-logic.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "92ff14dd7e59776a645a4c0595caa151c4ea740f",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/closure-control-cluster-matter-context.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "28e580a414cfbb9164a858aab99973d7c7b7d485",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/closure-control-cluster-objects.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5d3775aa92dc4d017f936f4773ce5ec6c04f2db3",
      "old_mode": 33188,
      "old_path": "src/app/clusters/closure-control-server/closure-control-server.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad7213e7c0286c19f79883211e03b9e7c07bb5ae",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/tests/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "075992c598758c7e8bfe92fc99dcc8def3e58e76",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/tests/TestClosureControlCluster.cpp"
    },
    {
      "type": "rename",
      "old_id": "43410ae6bec36672433c90e774b83a0276cca374",
      "old_mode": 33188,
      "old_path": "src/app/tests/TestClosureControlClusterObjects.cpp",
      "new_id": "1bb7242d06ad113a970ab85f1f301052e12bf025",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/tests/TestClosureControlClusterObjects.cpp",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "9c5c28b7f7008348d76d924f057265201f8b0f67",
      "old_mode": 33188,
      "old_path": "src/app/tests/TestClosureControlConformance.cpp",
      "new_id": "9470e97dc1f26c3972c12f55c266684508d00e67",
      "new_mode": 33188,
      "new_path": "src/app/clusters/closure-control-server/tests/TestClosureControlConformance.cpp",
      "score": 84
    },
    {
      "type": "modify",
      "old_id": "5ef7a6233242531d71b7f9384971b31a3101b410",
      "old_mode": 33188,
      "old_path": "src/app/common/templates/config-data.yaml",
      "new_id": "a40793b858551c87e9efe3e36465f281e0c8485a",
      "new_mode": 33188,
      "new_path": "src/app/common/templates/config-data.yaml"
    },
    {
      "type": "modify",
      "old_id": "a584333459498008c323bd5befcbb8b7d75c578d",
      "old_mode": 33188,
      "old_path": "src/app/tests/BUILD.gn",
      "new_id": "36d9400f33031dc0f424f272751a02dd7353b970",
      "new_mode": 33188,
      "new_path": "src/app/tests/BUILD.gn"
    },
    {
      "type": "delete",
      "old_id": "bb8d8f14453dff1596e4dc51d382e5b463ce19eb",
      "old_mode": 33188,
      "old_path": "src/app/tests/TestClosureControlClusterLogic.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9bfb3ded6a5c250d90287f71e6818ef56c863cbf",
      "old_mode": 33188,
      "old_path": "src/app/zap-templates/zcl/zcl-with-test-extensions.json",
      "new_id": "5eb1d6629fd56751e1e31068673129c82e83a72c",
      "new_mode": 33188,
      "new_path": "src/app/zap-templates/zcl/zcl-with-test-extensions.json"
    },
    {
      "type": "modify",
      "old_id": "081bd43eef31cdfeb4c42e4ddfba1dd596b3b2a1",
      "old_mode": 33188,
      "old_path": "src/app/zap-templates/zcl/zcl.json",
      "new_id": "86fd20671a7137de2fabd8088b7322289e9d53a6",
      "new_mode": 33188,
      "new_path": "src/app/zap-templates/zcl/zcl.json"
    },
    {
      "type": "modify",
      "old_id": "a0c3107b5e069f291f1facdd651d5abca093d77a",
      "old_mode": 33188,
      "old_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp",
      "new_id": "12b5633b02ef3030297764389a7d22b48c83db33",
      "new_mode": 33188,
      "new_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp"
    },
    {
      "type": "modify",
      "old_id": "73477ae3be27677b5da50f84af1167f2c0132657",
      "old_mode": 33188,
      "old_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h",
      "new_id": "f5e61e7ceb473ab05ea8f396aa8e3e75d988914a",
      "new_mode": 33188,
      "new_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h"
    }
  ]
}
