)]}'
{
  "log": [
    {
      "commit": "27f48852294e53373d6d62a0216de90644ea6349",
      "tree": "f0aa62885372ca3764e706a14fe5108b4e769e23",
      "parents": [
        "bfd16fb1931a831bbf723d9abd48b1c51a7352f4"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon May 04 16:05:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 16:05:49 2026 -0400"
      },
      "message": "Align Matter/CSA encoding with events and struct fields: capture fabric sensitivity for attributes when \u003caccess fabricSensitive\u003dtrue/\u003e is present. (#1703)\n\nAlign Matter/CSA encoding with events and struct fields: capture fabric\nsensitivity for attributes when \u003caccess fabricSensitive\u003dtrue/\u003e is present.\n\n- Add ATTRIBUTE.IS_FABRIC_SENSITIVE in zap-schema; insert and map in\n  query-loader / db-mapping; include column in attribute SELECTs\n  (query-zcl, query-attribute, query-session-zcl, query-endpoint).\n- zcl-loader-silabs: set isFabricSensitive via isAccessFabricSensitive()\n  on parsed attribute access children.\n- Extend meta fixture (test1.xml) and gen-meta tests for at2 and\n  HelloEvent isFabricSensitive where applicable.\n- Updating the xsd schema\n- Github: ZAP #1644"
    },
    {
      "commit": "bfd16fb1931a831bbf723d9abd48b1c51a7352f4",
      "tree": "8360f19c9fc88856523c247458b30a5301d30c5f",
      "parents": [
        "f11f148c67975b65f2cf8c63bae00ace7dc3722c"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Apr 27 12:07:20 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 12:07:20 2026 -0400"
      },
      "message": "refactor watchdog: use per-instance timers; add idle + hard template timeouts (#1702)\n\n- Replace the global watchdog singleton with createWatchdog() so the server inactivity timer and per-render template guards do not share one timer.\n- Inject the server watchdog from startup into the HTTP and IPC servers;\n- reset it on ticks, IPC activity, and connections as before.\n- Template rendering now uses an idle watchdog (no helper/deferred progress) plus a longer hard cap, instead of a single fixed render race.\n\n- Accounting for deferred blocks like (after helper from handlebar)\n- Github: ZAP #1567"
    },
    {
      "commit": "f11f148c67975b65f2cf8c63bae00ace7dc3722c",
      "tree": "40bb6db6c8fafd50848242eeadd6e57f1f41f434",
      "parents": [
        "4ea1067b6c941c4112ef6e11aeaa40b1f91220c2"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Fri Apr 24 13:45:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 13:45:21 2026 -0400"
      },
      "message": "JSDoc db-mapping keys for block helpers (#1701)\n\n* JSDoc db-mapping keys for block helpers\n- Attribute keys available for each block helper added to the the block helper function definition\n\n- Github: ZAP #915\n\n* Ordering it alphabetically\nGithub: ZAP #915"
    },
    {
      "commit": "4ea1067b6c941c4112ef6e11aeaa40b1f91220c2",
      "tree": "98b0876e8d66d6c2b9ce7c829f4578c26edbb768",
      "parents": [
        "b6177d52fb55ee4ca3f16383c50ae3b22b345748"
      ],
      "author": {
        "name": "Tibor Kollar",
        "email": "tibor.kollar@silabs.com",
        "time": "Tue Mar 31 11:57:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 11:57:04 2026 +0200"
      },
      "message": "Improve Extensions page UX (#1697)\n\n* 783: Modify text and add tooltip to browser button\n\n* 783: Create a separated ui for buil-in and  uploaded custom xml\n\n* 783: Add space before chevron\n\n* 783: Modify cypress test\n\n* Createa new packageList component\n\n* Modify descriptions on extensions page\n\n* Fix cypress test for extensios page"
    },
    {
      "commit": "b6177d52fb55ee4ca3f16383c50ae3b22b345748",
      "tree": "289fd7c453deec3be5c44fba44d87d815217d589",
      "parents": [
        "8b633928d5b7212ac2d0382aba9a0462adb5045d"
      ],
      "author": {
        "name": "Tibor Kollar",
        "email": "tibor.kollar@silabs.com",
        "time": "Tue Mar 17 11:07:11 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 11:07:11 2026 +0100"
      },
      "message": "Fix some ui issues (#1694)\n\n* GHM_ZAP-91:Add Open all button\n\n* Remove regenerateIntoDirectory func\n\n* 1694: Modify Cypress test and  mutations for close all and open all btn\n\n* 1694: add constants for close all and open all\n\n* 1694: Modify constants\n\n* 1694: Add test case for checking close and open button\n\n* 1694: Add test case for checking close and open button 2\n\n* 1694: Modify visibility in test\n\n* 1694: Add a not-visible check."
    },
    {
      "commit": "8b633928d5b7212ac2d0382aba9a0462adb5045d",
      "tree": "99880613f7e31e771612068d129024d1175da8c2",
      "parents": [
        "f1bb331f78fa0fb88b06cd0849d340e26b17f78c"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Thu Feb 26 15:58:42 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 15:58:42 2026 -0500"
      },
      "message": "update package dependencies (#1667)\n\n* chore: update package dependencies (bufferutil, express, express-session, utf-8-validate, ws, yaml, husky, jsdoc, prettier, pretty-quick)\n\n* Update package.json\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update package.json\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update package.json\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update package.json\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f1bb331f78fa0fb88b06cd0849d340e26b17f78c",
      "tree": "c6f27efb424ce128e5ad0b2955ccbe44c51af938",
      "parents": [
        "3583c532ad69e2b09f57835862e6e3c5ea58050d"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Feb 26 12:36:27 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 12:36:27 2026 -0500"
      },
      "message": "Ensure all XML Files are included in validate and format scripts (#1693)\n\n- Extend zcl.xsd as required\n- Clean up malformed XML"
    },
    {
      "commit": "3583c532ad69e2b09f57835862e6e3c5ea58050d",
      "tree": "b630c22897d95792a0b913eb7f6114fa26835fa8",
      "parents": [
        "c8d348f2eddbb9fa329748304d9951bbdd7aa11f"
      ],
      "author": {
        "name": "Tibor Kollar",
        "email": "tibor.kollar@silabs.com",
        "time": "Thu Feb 26 16:22:28 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 16:22:28 2026 +0100"
      },
      "message": "Add Cypress config-loading tests for Zigbee, Matter, and multiprotocol modes (#1692)\n\n* GHM_ZAP-47: Add test for only Zigbee templete pre-loaded\n\n* GHM_ZAP-47: Add test for only Matter templete pre-loaded\n\n* GHM_ZAP-47: Add Cypress config-loading tests for Zigbee, Matter, and multiprotocol modes\n\n* Fix duplication in config-loading"
    },
    {
      "commit": "c8d348f2eddbb9fa329748304d9951bbdd7aa11f",
      "tree": "83358734d2f74b31bd039799cd7071d2ce0de4b7",
      "parents": [
        "88ce52f38d08651f428c39913294405bfb555720"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Feb 24 16:28:21 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 16:28:21 2026 -0500"
      },
      "message": "parallelize generation and notification paths with Promise.all (#1687)\n\n- parallelize generation and notification paths with Promise.all\n- Template engine: run iterative iterations (e.g. per-cluster) and\n  deferred blocks in parallel; use per-iteration options to avoid races.\n- Generation engine: load template JSON files and package options in\n  parallel; run generateAndWriteFiles for multiple template packages\n  in parallel per .zap file.\n- ClustersHelper: fetch cluster details per endpoint in parallel in\n  loadEndpoints().\n- helper-endpointconfig: resolve attribute default values in parallel\n  per cluster, then process in order.\n- query-session-notification: run deleteNotification and\n  setWarningIfMessageNotExists in parallel where multiple IDs/messages\n  are handled.\n- add worker pool for parallel template iteration\n- Add template-iteration-worker.js (worker_threads + workerpool) to run\n  single template iterations in separate threads with shared partials,\n  metaInfo, and helpers via workerData.\n- Add createIterationPool() and execIterationRender() in generation-engine;\n  pool exposes runRender(payload) and terminate(), capped at 8 workers.\n- In generateAllTemplatesImpl, create iteration pool when dbFilePath is set\n  (opt-out: ZAP_DISABLE_WORKER_POOL\u003d1) and terminate pool on cleanup.\n- In template-engine, use iterationPool.runRender() for iterations when\n  pool is provided; otherwise keep single-threaded produceContent path.\n- run non-iterative template renders in worker pool\n- When options.iterationPool is set, produceContent() now delegates to the\npool with a single runRender() call instead of rendering on the main thread.\nReuses the same worker and payload shape as iterative renders (one iteration\nwith the given options). Iterative templates unchanged; both paths use the\npool when available.\n- Github: ZAP #1659"
    },
    {
      "commit": "88ce52f38d08651f428c39913294405bfb555720",
      "tree": "9eaee161210d4177b61e06cf3485197372f12b8a",
      "parents": [
        "4aef011af13f1b7ee3edd4b2d848390ad1041107"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Feb 24 11:52:45 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:52:45 2026 -0500"
      },
      "message": "Cleaning up the broken functionality for UI not catching the errors from SQL Triggers (#1689)\n\nJIRA: ZAPP-1696"
    },
    {
      "commit": "4aef011af13f1b7ee3edd4b2d848390ad1041107",
      "tree": "5aaa6abe3f96b39c910243d2e600c3f5172a1529",
      "parents": [
        "aa255e435d4252893351b92dd23ea17523ee1615"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Feb 24 11:18:11 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:18:11 2026 -0500"
      },
      "message": "Making sure that the nvm stored attributes are ordered by endpoint (#1686)\n\n* Making sure that the nvm stored attributes are ordered by endpoint\nJIRA: ZAPP-1690\n\n* Adding more code owners"
    },
    {
      "commit": "aa255e435d4252893351b92dd23ea17523ee1615",
      "tree": "04db137d98385fb8ac3fb0b4d7ac52e1a08870d4",
      "parents": [
        "d5ca93b12726072fee23e7ff5bf774a0e202e5ac"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Feb 19 15:45:26 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 15:45:26 2026 -0500"
      },
      "message": "use fieldId for event fields with id fallback (#1690)\n\n* use fieldId for event fields with id fallback\n\n- Also update schema for command arg to only allow fieldId to reflect what loader accepts\n\nclean up\n\n* Add tests"
    },
    {
      "commit": "d5ca93b12726072fee23e7ff5bf774a0e202e5ac",
      "tree": "861446f1e8cadc4dda063dcf4c44168f7634eebe",
      "parents": [
        "e33856a59bf71524ce71ba7d5c16b71b48220afc"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Wed Feb 11 13:56:14 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 11 13:56:14 2026 -0500"
      },
      "message": "ZAPP-1695: Enable toggling desc features to fix the TagList feature issue (#1685)\n\n* do not disable toggling on desc features, display warning instead\n\n* add unit test"
    },
    {
      "commit": "e33856a59bf71524ce71ba7d5c16b71b48220afc",
      "tree": "0e539feed0f4b8fbfaf82225f8fce574433585b2",
      "parents": [
        "854958f08dff9a6232a9b67c49dd3e5564721856"
      ],
      "author": {
        "name": "Tibor Kollar",
        "email": "tibor.kollar@silabs.com",
        "time": "Thu Feb 05 18:20:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 18:20:00 2026 +0100"
      },
      "message": "Add test for Tour in Multiprotocol mode (#1681)\n\n* Add test for Tour in Multiprotocol mode\n\n* Update cypress/e2e/multiprotocol/cmp-tutorial.cy.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Modify mode check place\n\n* Update CMP tutorial test to derive \"Next\" clicks from config\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "854958f08dff9a6232a9b67c49dd3e5564721856",
      "tree": "dc887a08cfca2beff64f3ed29088abffb8230499",
      "parents": [
        "c1d835e0fad0c70069473972f02d1719701ec513"
      ],
      "author": {
        "name": "Tibor Kollar",
        "email": "tibor.kollar@silabs.com",
        "time": "Wed Feb 04 15:55:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 04 15:55:55 2026 +0100"
      },
      "message": "Improve coverage with Cypress E2E tests and split test setup by mode (Zigbee/Matter/Multiprotocol) (#1680)\n\n* Improve code coverage with Cypress E2E tests\n\n* Modify data-cy on back button\n\n* Add Multiprotocol test case\n\n* Add a lot of tests for ui\n\n* Add matter adn multiprotocol config\n\n* Update cypress/README.md\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update cypress/e2e/ui/zap-config.cy.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update cypress/e2e/ui/zap-config.cy.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update cypress/e2e/ui/preferences-devtools.cy.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update cypress/e2e/ui/preferences-devtools.cy.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update Cypress tests to use Mode constants\n\nCentralize zigbee/matter/multiprotocol mode values in cypress/support/mode.js and\nreplace hard-coded Cypress.env(\u0027mode\u0027) string comparisons across specs and\ncypress.config.js with Cypress.Mode.*.\n\nAlso fix Cypress zap-config spec warning assertions.\n\n* Update Cypress tests to use more robust selectors\n\n* Update cypress/e2e/ui/preferences.cy.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update Cypress tests to use more robust selectors on preference page\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c1d835e0fad0c70069473972f02d1719701ec513",
      "tree": "29e0596e664dd8350ad06d7c6adc0708e07c39e6",
      "parents": [
        "63a4f0bf1fcefe399a9a4e5aa05acf0db3ddae36"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Jan 15 11:07:37 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 15 11:07:37 2026 -0500"
      },
      "message": "Adding unit tests to improve the code coverage of jest unit tests in ZAP (#1652)\n\n* - Adding unit tests to improve the code coverage of jest unit tests in ZAP\n* - ADding more tests\n\n* - Fixing the cypress test coverage analysis, fixing the combination of jest and cypress coverage for total analysis and updating sonar qube to use the combination to fix the overall test coverage being reported\n* - Having the combine script throw an error out if percentage of test coverage goes below 80%\n- Adding the zap-combine-reports.js process to the github workflows so that the CI fails everytime the code coverage goes below 80%\n- More cleanup\n- JIRA: WT-668"
    },
    {
      "commit": "63a4f0bf1fcefe399a9a4e5aa05acf0db3ddae36",
      "tree": "faadf0f2ac7b59b8374c388dc5fb8cc85090ac34",
      "parents": [
        "58a3d85fbd93f13184615e7b84eb3242bd654f58"
      ],
      "author": {
        "name": "puddly",
        "email": "32534428+puddly@users.noreply.github.com",
        "time": "Fri Jan 09 13:53:10 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 09 13:53:10 2026 -0500"
      },
      "message": "Add aarch64 paths to `apack.json` for Linux and Windows (#1677)\n\n* Add aarch64 variants for Linux\n\n* Add aarch64 variants for Windows"
    },
    {
      "commit": "58a3d85fbd93f13184615e7b84eb3242bd654f58",
      "tree": "cd46da6a3a99ebaa81d23dbb6e2ac43d9f7c2adc",
      "parents": [
        "62306d7a74ebf3d81c5408acba3c98297be5b309"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Tue Dec 02 14:19:12 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 03 00:49:12 2025 +0530"
      },
      "message": "Add support for static template generation control (#1674)\n\n* Add support for static template generation control\n\n- Add \u0027static\u0027 boolean flag to individual templates to mark them as static content\n- Add \u0027generateStaticTemplates\u0027 generator option to control default behavior\n- Static templates are skipped when generateStaticTemplates is false for the session\n- Session-level .zap file settings can override the generator default\n\n* Apply suggestions from code review\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "62306d7a74ebf3d81c5408acba3c98297be5b309",
      "tree": "6532aec009ad6aa0c1a33a7cbeb56e00b63170dd",
      "parents": [
        "512a4e5e01be33715c009922fcc7e5506bd25860"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Nov 26 13:35:53 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 26 13:35:53 2025 -0500"
      },
      "message": "Open first endpoint when opening .zap file (#1673)\n\n- When no endpoint is selected and this.endpointIdListSorted is available then choose the first endpoint in it\n- JIRA: ZAPP-1500"
    },
    {
      "commit": "512a4e5e01be33715c009922fcc7e5506bd25860",
      "tree": "2aa556c0cb292cb5ee284c8503441ea01eb30d72",
      "parents": [
        "9df91926e6ce3ca1f1bce009d8364ae28d785e34"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Nov 26 07:34:54 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 26 07:34:54 2025 -0500"
      },
      "message": "Show package warnings when incorrect attribute default values are present in xml files (#1671)\n\n- validation is called along with insertAttributes call now\n- JIRA: ZAPP-1648"
    },
    {
      "commit": "9df91926e6ce3ca1f1bce009d8364ae28d785e34",
      "tree": "83e6096732b2a8842ad1627b07ae60950d4b97d3",
      "parents": [
        "2521160758125c73f99d28fd1c6df023a86d1318"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Wed Nov 19 14:24:55 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 14:24:55 2025 -0500"
      },
      "message": "Endpoint Composition Support (#1668)\n\n* Update version to 2025.11.3 and implement endpoint composition requirements functionality. Added new database queries and REST API endpoints to retrieve device type composition requirements. Enhanced loadComposition and addEndpoint functions to automatically create required endpoints based on composition constraints. Updated template to reflect new requirements in endpoint configuration.\n\n* fix version\n\n* Fix endpoint composition recursion and add cycle detection\n\n- Remove redundant recursion by adding skipCompositionCheck parameter to addEndpoint\n- Add cycle detection using compositionChain Set to prevent infinite loops\n- Remove all debug console.log statements\n- Maintain backward compatibility with default parameter value\n\n* cleanup\n\n* cleanup via PR review\n\n* add more tests\n\n* PR review\n\n* add cypress tests and mark down doc\n\n* need to rewrite cypress\n\n* Remove GUI logic - keep only backend queries and helpers\n\nThis branch now contains only:\n- Database queries for endpoint composition requirements\n- REST API endpoints for querying composition\n- Template helpers for generating composition data\n- Backend tests\n\nGUI logic (automatic endpoint creation) moved to endpoint-composition-gui branch\n\n* Remove REST API endpoints - moved to GUI branch\n\nREST API endpoints are only needed by the GUI for automatic endpoint creation.\nBackend branch now only contains:\n- Database queries\n- Template helpers\n- Documentation\n\n* Update endpoint composition docs to reflect backend-only scope\n\n- Removed GUI automatic creation sections\n- Removed REST API endpoint documentation (moved to GUI PR)\n- Removed untested query examples (composition-specific clusters)\n- Kept only tested functionality:\n  - selectEndpointCompositionRequirementsByDeviceTypeRef query\n  - user_endpoint_composition_requirements template helper\n  - Basic composition requirements\n- Simplified examples to match what\u0027s actually tested"
    },
    {
      "commit": "2521160758125c73f99d28fd1c6df023a86d1318",
      "tree": "e621ea8b5813cdccd0f7d1b5171f2b3be89fb5c2",
      "parents": [
        "aa683833f1025869ede994928e7d1a0e1a4d7269"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Nov 19 21:02:03 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 21:02:03 2025 +0530"
      },
      "message": "- Not showing incorrect warnings for endpoint 0 (#1670)\n\n- JIRA: ZAPP-1642"
    },
    {
      "commit": "aa683833f1025869ede994928e7d1a0e1a4d7269",
      "tree": "226341ba48e69277535d8a86916c731a4ae60c86",
      "parents": [
        "5adfdc84d86d42fb554c419d93a2c6ebf4bacf98"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Nov 13 22:33:04 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 13 22:33:04 2025 +0530"
      },
      "message": "Changing the data type by name helpers to use data type name and cluster (#1669)\n\n- Updating types.getSignAndSizeOfZclType to types.getSignAndSizeOfZclTypeAndClusterId for better accuracy and avoiding duplicate data types across clusters.\n- updating the code associated with the above as required in the code.\n- deprecating as_bytes and data_types_for_enum as they are no longer used.\n\n- Handling clusterId for all the helpers. Now the helpers can mention clusterId\u003dID-NUMBER along with the helpers in .zapt templates to account for the helpers. The helpers in helpers.js files now extract this from the this object automatically\n\n- Updating the feature level of zap\n\n- Adding unit tests for the as_underlying_zcl_type helper with cluster Id reference\n- Github: ZAP #1592"
    },
    {
      "commit": "5adfdc84d86d42fb554c419d93a2c6ebf4bacf98",
      "tree": "e0536fafb712f80f620ef590ce3d2fe6ce280abe",
      "parents": [
        "3c41a22eb21017eee9aa7ec4af92decffc6cfd9d"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Wed Nov 12 11:13:29 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 12 11:13:29 2025 -0500"
      },
      "message": "Add --no-emoji option to disable emoji characters in console output (#1635)\n\n* Add --no-emoji option to disable emoji characters in console output\n\n- Added emoji-util.js utility for conditional emoji formatting\n- Updated args.js to include --no-emoji command line option\n- Modified script-util.js to use formatMessage() for all emoji output\n- Updated startup.js to use emoji utility\n- Added documentation and demo scripts\n- Resolves issues with stdout when piping to automation tools\n- Python no longer chokes on emoji characters in output\n- Maintains backward compatibility (emojis enabled by default)\n\n* Fix env.formatMessage() for startup.test.js - add emoji utility wrapper to env.js\n\n* Update src-script/script-util.js\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Fix license header corruption and standardize emoji usage\n\n- Fixed corrupted license header in script-util.js\n- Standardized to use emojiUtil.formatMessage() in script files\n- Keep env.formatMessage() wrapper for startup.js compatibility\n- Both approaches work correctly for their respective module systems\n\n* Fix comprehensive emoji support across ZAP\n\n- Fix broken emoji syntax in startup.js and gsdk-public-regen.js\n- Add emoji support to gsdk-public-regen.js and zap-package-metadata.js\n- Create fix-emojis.js utility script for systematic emoji conversion\n- All emojis now respect --no-emoji flag and NO_EMOJI environment variable\n\n* Complete emoji support implementation across all ZAP scripts\n\n- Add emoji utility to zap-start.js and zap-uitest.js\n- Fix remaining hardcoded emojis in zap-start.js, zap-uitest.js, and gsdk-public-regen.js\n- All console output now respects --no-emoji flag and NO_EMOJI environment variable\n- Comprehensive solution ensures automation-friendly output for CI/CD pipelines\n\n* Make emoji utility stateful and testable\n\n- Replace static constant with dynamic isEmojiDisabled() function\n- Add setEmojiDisabled() and resetEmojiState() for testing\n- Export testing functions through env.js wrapper\n- Fix test to use CommonJS emoji-util directly\n- Maintains environment variable and command line flag detection\n- Enables proper unit testing of emoji functionality\n\n* Restore accidentally deleted API documentation\n\n- Restore docs/api.md from commit 48de0060 (before emoji changes)\n- File was accidentally truncated in commit 5f8ef3e8 due to JSDoc generation failure\n- JSDoc fails with Node.js v24 due to util.isRegExp compatibility issue\n- Restores all 28,406 lines of API documentation\n\n* Remove EMOJI_IMPLEMENTATION_SUMMARY.md\n\n- Remove redundant summary file\n- Documentation is already covered in docs/no-emoji-implementation.md\n\n* Remove temporary development files\n\n- Remove demo-no-emoji.js (was just a demonstration script)\n- Remove fix-emojis.js (was a utility script for development)\n- Keep only the production implementation files\n\n* Refactor: Consolidate formatMessage function to follow DRY principle\n\n- Remove duplicate formatMessage function from emoji-util.js\n- Keep single formatMessage implementation in env.js for general message formatting\n- Update all imports and function calls across codebase from emojiUtil.formatMessage to env.formatMessage\n- Maintain emoji-util.js focus on emoji state management only\n- Improve code organization by placing message formatting in general utilities module\n\nFixes code duplication and follows best practices for single responsibility principle.\n\n* Fix module syntax in env.js: convert ES modules to CommonJS\n\n- Convert 42 \u0027export function\u0027 declarations to regular functions\n- Convert \u0027export const environmentVariable\u0027 to regular const\n- Add all exports to module.exports object for CommonJS compatibility\n- Resolves CI failure caused by mixed ES/CommonJS module syntax\n- Maintains all existing functionality while fixing Node.js module loading\n\n* Fix formatMessage implementation in env.js\n\n- Implement formatMessage logic directly instead of calling non-existent emojiUtil.formatMessage\n- Use emojiUtil.isEmojiDisabled() to check state and format accordingly\n- Resolves TypeError: emojiUtil.formatMessage is not a function\n\n* Address PR review: Fix emoji corruption and rename formatMessage to formatEmojiMessage\n\n- Fix corrupted emojis (� symbols) that appeared due to encoding issues during sed operations\n- Rename formatMessage() to formatEmojiMessage() for better semantic clarity\n- Restore proper Unicode emojis: 👈 for read operations, 👉 for write operations, 🔧 for processing\n- Update all 94+ function call sites across startup.js, script utilities, and tests\n- Verify emoji functionality works correctly with comprehensive test coverage\n- Remove obsolete test files and documentation per cleanup requirements\n\nAddresses feedback from PR review regarding function naming and emoji display issues.\n\n* Clean up empty development files\n\nRemove empty files that were created during development:\n- EMOJI_IMPLEMENTATION_SUMMARY.md\n- demo-no-emoji.js\n- fix-emojis.js\n\nThese were temporary files that never got populated with content.\n\n* update apack.json\n\n* remove package-lock.json\n\n* cleanup\n\n* cleanup\n\n* adding helper functions because they are needed for the tests\n\n* add tests and cleanup\n\n* more emojies\n\n* bug fix\n\n* fix ci\n\n* fix to new format\n\n* fix emoji\n\n* fix tests\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3c41a22eb21017eee9aa7ec4af92decffc6cfd9d",
      "tree": "c2063abca9ba5ea5caafc79af79160007f23fe97",
      "parents": [
        "1759ea6d7b087050ffd63c3970ccaefb27f21da4"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Nov 10 21:22:27 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 10 21:22:27 2025 +0530"
      },
      "message": "- Add cluster name to the ordering to make sure that the data types always return in the same order every time for matter (#1645)\n\n- Adding unit tests for deterministic order of data types\n- Handling the null clusters references appropriately as well\n- Ordering with a select query in order by for data types in order to get the data types in a deterministic order every time using the data type name and the cluster name it belongs too\n- Gihub: ZAP #1596"
    },
    {
      "commit": "1759ea6d7b087050ffd63c3970ccaefb27f21da4",
      "tree": "a98deca074e01d5a43c96fcd2198f21bb0462ba7",
      "parents": [
        "f48427d766a52a95d29ad1cc925da8a405a57017"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Mon Nov 03 10:03:37 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 03 10:03:37 2025 -0500"
      },
      "message": "update pkg runtime to Node 20 for zap-cli packaging (#1665)\n\n"
    },
    {
      "commit": "f48427d766a52a95d29ad1cc925da8a405a57017",
      "tree": "daf463be4cf5756cd2972014db292248ffdd445e",
      "parents": [
        "a7b3727a5cdde66bcab67843b8afe2c3158b061d"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Oct 30 15:08:58 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 15:08:58 2025 -0400"
      },
      "message": "Fix download-artifact script - use github token for all Github API calls (#1647)\n\n- package download-artifact using node 16 (better performance)\n- add brief comments to download-artifact.ts to satisy linting rules"
    },
    {
      "commit": "a7b3727a5cdde66bcab67843b8afe2c3158b061d",
      "tree": "0c159e01d1dff8b5443a13bfb97f7260f34530b8",
      "parents": [
        "643a8a0781339e3e0ddd61e0fd66a8b192088493"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Oct 29 09:52:00 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 29 09:52:00 2025 -0400"
      },
      "message": "- Adding a type extraction which takes array type into consideration first and then takes the type otherwise. helpful for attribute block helpers (#1663)\n\n- Github: ZAP#412"
    },
    {
      "commit": "643a8a0781339e3e0ddd61e0fd66a8b192088493",
      "tree": "ceb05afe4b31716fab0da53e6423885284bd5588",
      "parents": [
        "2fa4a338966639bf23bc6f9bb6741a2db2a054ea"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Oct 28 13:55:38 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 28 13:55:38 2025 -0400"
      },
      "message": "Adding apiMaturity for bimap fields, enum items and struct items (#1662)\n\n-Adding apiMaturity for bimap fields, enum items and struct items\n- Removing selectAllBitmapFields function which is not used anywhere\n- Adding apiMaturity to commands and command arguments\n- Adding api maturity to enums, bitmaps and event fields\n- Adding unit tests\n- JIRA: ZAP#1608\n\n* updating the schema\nGithub: ZAP#1608"
    },
    {
      "commit": "2fa4a338966639bf23bc6f9bb6741a2db2a054ea",
      "tree": "cabe5e8169f31077267c4384f6e8eee012141570",
      "parents": [
        "1d6778b8545c38c905c7784b1da2f17a2e56dcf7"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Oct 23 15:10:27 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 15:10:27 2025 -0400"
      },
      "message": "- Updating the zcl.xsd with matter relevant elements and updating the validate script to check the data-model xml within the zap repo (#1646)\n\n- Fixing the xsd validation for chip repo Data Model xml\n- ZAP#1609"
    },
    {
      "commit": "1d6778b8545c38c905c7784b1da2f17a2e56dcf7",
      "tree": "d6ac36c0fc5ba22f296cf1ac81624cf287aca9ce",
      "parents": [
        "118bf2ee6599532a3502e1129ed7701587380c06"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Oct 23 13:35:45 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 13:35:45 2025 -0400"
      },
      "message": "Ensure endpoint is deleted before creating a new one in \"Delete and Add\" (#1661)\n\n"
    },
    {
      "commit": "118bf2ee6599532a3502e1129ed7701587380c06",
      "tree": "44bbfa2b58b23eb8df7a7595eef96a46ad9ca04d",
      "parents": [
        "e77e59a8f73de506fd3378ed05475c0f9fe722e2"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Oct 23 11:43:30 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 11:43:30 2025 -0400"
      },
      "message": "- Using slc args json file when opening .zap files and changing the zcl and templates meta data to use what is in the slc agrs json file during the file open operation (#1657)\n\n- Not saving the .zap file after generation when there is a slc args file beside zap\n- JIRA: ZAPP-1656"
    },
    {
      "commit": "e77e59a8f73de506fd3378ed05475c0f9fe722e2",
      "tree": "c1872eccdc81208f7ef6216178c3e51785b8745e",
      "parents": [
        "d751c4bfb7467889e7ac79794d2f996f252c3cea"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Oct 23 10:55:56 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 10:55:56 2025 -0400"
      },
      "message": "Fix: delete and add functionality when editing device type (#1660)\n\n* Fix: delete and add functionality when editing device type\n\n- Delete and add should delete existing endpoint and endpoint type\n- When cluster state is shared (Zigbee), return endpoint type IDs instead of endpoint IDs in endpointTypeIdList\n- Delete endpoint logic is consistent across UI\n\n* clean up"
    },
    {
      "commit": "d751c4bfb7467889e7ac79794d2f996f252c3cea",
      "tree": "ab0501301baf8f800b9fce06334b6bd4b6da716b",
      "parents": [
        "a8323e307b0f369572d303373e6f804d9111de44"
      ],
      "author": {
        "name": "Andrei Litvin",
        "email": "andy314@gmail.com",
        "time": "Thu Oct 23 09:39:49 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 09:39:49 2025 -0400"
      },
      "message": "Support device type revisions (#1658)\n\n* Support device type revision.\n\n* Rename DEVICE_REVISION to REVISION\n\n* Add a unit test that shows device revision.\nAdd a revision in matter-devices.\n\n* Fix XML tag.\n\n* Update matter device types template as well.\n\n* Use `_` to get the actual valure for the device revision.\n\nI am unclear when _ is to be used and when not ...\n\n* Fix light device: it should be 0x100 not 103\n\n* Replace deviceRevision with revision."
    },
    {
      "commit": "a8323e307b0f369572d303373e6f804d9111de44",
      "tree": "2e242b31a1227b2de685433ff2850c2ba37b2bfd",
      "parents": [
        "bbf43203bc82bab9719489f0f735e24764908c2b"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Oct 21 11:22:42 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 21 11:22:42 2025 -0400"
      },
      "message": "Running ZAP code gen check against the v1.0-branch release of Chip and the tip of chip repo (#1655)\n\nGithub: ZAP #960"
    },
    {
      "commit": "bbf43203bc82bab9719489f0f735e24764908c2b",
      "tree": "28b5c5ac82430353997e70127d824e0c52dc10b5",
      "parents": [
        "a4e678c507af6e0db786595c93ed18476832c73d"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Oct 07 14:38:52 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 07 14:38:52 2025 -0400"
      },
      "message": "Adding log warnings in helpers when data types cannot be determined (#1654)\n\nGithub: ZAP#1247"
    },
    {
      "commit": "a4e678c507af6e0db786595c93ed18476832c73d",
      "tree": "4f0606131dcc013959b4858119e2ac34863195db",
      "parents": [
        "ba7bb60b93ae4da4741e31a84b9bc7d7e8855423"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Fri Oct 03 16:00:17 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 03 16:00:17 2025 -0400"
      },
      "message": "- Fitering out atomic bitmaps from zcl_bitmaps just like we do from zcl_enums (#1653)\n\n- Adding unit tests for the changes\n- Github: ZAP#1370"
    },
    {
      "commit": "ba7bb60b93ae4da4741e31a84b9bc7d7e8855423",
      "tree": "ea4481383861aa13f0494a4ef5f271f85d3281b8",
      "parents": [
        "0033a3c3913dea9443ce632f1ab40b645d1dcead"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Fri Oct 03 13:25:19 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 03 13:25:19 2025 -0400"
      },
      "message": "Adding error handling messages for the atomic types under overridable (#1651)\n\nGithub: ZAP #1204"
    },
    {
      "commit": "0033a3c3913dea9443ce632f1ab40b645d1dcead",
      "tree": "58d73a1b7b795d0679dfa74c2fa9fb58205a7f4a",
      "parents": [
        "fd8826d4f0b23039c1b7ea1f77d98904523d49be"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Sep 23 08:31:47 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 23 11:31:47 2025 -0400"
      },
      "message": "Making sure users can continue editing the UI because something is wrong with validation and this is not reproducible in all machines (#1650)\n\nJIRA: ZAPP-1661"
    },
    {
      "commit": "fd8826d4f0b23039c1b7ea1f77d98904523d49be",
      "tree": "66fe2ce5d7ae82ed1501b1796d5ade8d810d4299",
      "parents": [
        "b7e6050a2cdd69f0b63eb802422c9995baa8816e"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Sep 22 09:31:45 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 22 09:31:45 2025 -0700"
      },
      "message": "fix: correct hex padding for as_generated_default_macro to fix 24-bit attribute defaults (#1648)\n\n- Ensure proper hex padding based on attribute size (attributeSize * 2 digits)\n- Fix issue where 0x186A0 for 24-bit attributes generated incorrect byte sequence\n- Handle both hex (0x prefixed) and decimal input values correctly\n- Maintain backward compatibility with existing test expectations\n- Fixes customer-reported issue where 24-bit values were 16x larger than expected\n- The padding logic now ensures that hex values like 0x186A0 are properly padded to 0x0186A0 for 3-byte attributes, generating the correct byte sequence 0x01, 0x86, 0xA0 instead of 0x18, 0x6A, 0x0.\n\n- adding test for little endian as well\n- JIRA: ZAPP-1658"
    },
    {
      "commit": "b7e6050a2cdd69f0b63eb802422c9995baa8816e",
      "tree": "9879d1c0e35a3eeb2bc0b327ec9aadf0483939dc",
      "parents": [
        "e0f466a7149d04d43848874d5da06bbfefdcafb1"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Sep 22 09:05:55 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 22 09:05:55 2025 -0700"
      },
      "message": "Fixing the UI for attribute reporting (#1649)\n\n- Now custom clusters show attribute reporting\n- JIRA: ZAPP-1655"
    },
    {
      "commit": "e0f466a7149d04d43848874d5da06bbfefdcafb1",
      "tree": "1843f6105716e475a4313a1b334e6a993fba4e33",
      "parents": [
        "37ba4da20ec082877d7a24579fd4ce3192a1c8e5"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Wed Sep 10 15:29:04 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 10 15:29:04 2025 -0400"
      },
      "message": "added template helper to get mandatory attribute count (#1642)\n\n"
    },
    {
      "commit": "37ba4da20ec082877d7a24579fd4ce3192a1c8e5",
      "tree": "088d9eb525b9a48881cb977bbd7d33a23b9a2e5e",
      "parents": [
        "d6ee8315f10bbbb20b3edf94763ae647c65e7270"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Sep 10 14:58:58 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 10 14:58:58 2025 -0400"
      },
      "message": "Add upgrade rules to be implemented to zap file open and implement user-selected package persistence for .zap file imports when the paths in it a wrong relatively (#1643)\n\n* Add getUpgradePackageMatch function to util.js for package matching logic\n* Modify httpPostFileOpen to extract and use selectedZclPackages/selectedTemplatePackages from request\n* Update ZapConfig.vue submitForm to include selected packages in file open requests\n* Enhance importDataFromFile to respect user-selected packages over embedded packages\n* Add upgrade package matching and rule execution during import process\n\nThis ensures that user package selections from the UI are respected when\nopening .zap files, rather than defaulting to packages embedded in the\n.zap file itself. The changes maintain backward compatibility while\nadding support for package upgrade rules and multi-protocol configurations.\n\n- Resolves issue where package selections were not persisted during file operations.\n\n- Adding unit tests for the upgrade rule on file open/import\n\n- eliminate redundant upgrade rules code in startup.js and fix unit test failures\n- Github: ZAP #1638"
    },
    {
      "commit": "d6ee8315f10bbbb20b3edf94763ae647c65e7270",
      "tree": "ba5ed9070d8fe76c6d4e0d9f312ea1b7f9c5435b",
      "parents": [
        "b82c54cf2e793f448f2094b7387c8127e53ca9ec"
      ],
      "author": {
        "name": "Amine Alami",
        "email": "43780877+Alami-Amine@users.noreply.github.com",
        "time": "Fri Aug 29 15:54:38 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 29 15:54:38 2025 +0200"
      },
      "message": "adding support for `apiMaturity` handling to Events (#1637)\n\n* adding ApiMaturity to DBs\n\n* adding/removing needed commas from SQL commands\n\n* adding to XSD\n\n* add missing comma in query loader\n\n* Adding UnitTest\n\n* removing TODOs\n\n* removing the template change"
    },
    {
      "commit": "b82c54cf2e793f448f2094b7387c8127e53ca9ec",
      "tree": "624e8fc723c35e4d7aa436c1f1f208f5fa2c9edc",
      "parents": [
        "979e8b6a5a0d5b4fa14c20c698f19ce65177801e"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Wed Aug 27 14:13:10 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 27 14:13:10 2025 -0400"
      },
      "message": "Fix new SonarQube issues (#1641)\n\n* fix new sonarqube issues"
    },
    {
      "commit": "979e8b6a5a0d5b4fa14c20c698f19ce65177801e",
      "tree": "e45c3d4450684313d06d94fcba1a487d336edc7e",
      "parents": [
        "fd75334cac8f7e755281ece7e00b9a3d112a1db2"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Tue Aug 12 16:05:08 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 16:05:08 2025 -0400"
      },
      "message": "Feature Page: Add conformance translation tooltip and external documentation link (#1626)\n\n* display translation of conformance expression and link external documentation"
    },
    {
      "commit": "fd75334cac8f7e755281ece7e00b9a3d112a1db2",
      "tree": "1ce7265165d9eb03618eb587251edabc7a5b94a2",
      "parents": [
        "6983ca0485630d634c6934e63dfb3e4e1e6493a1"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Fri Aug 08 09:29:50 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 08 09:29:50 2025 -0400"
      },
      "message": "Executing post processing commands synchronously (#1631)\n\nJIRA: ZAPP-1646"
    },
    {
      "commit": "6983ca0485630d634c6934e63dfb3e4e1e6493a1",
      "tree": "fa7cd674412a5fdd6425a6869786d6a75126fcca",
      "parents": [
        "a33fa6b7af5cb6bac61d91ed898ac284f231e98d"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Wed Aug 06 16:22:46 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 06 16:22:46 2025 -0400"
      },
      "message": "Add Cypress tests for feature page and clean up Cypress tests (#1629)\n\n* clean up Cypress tests and add tests for feature page\n\n* simplify visit baseurl and delete files in fixture"
    },
    {
      "commit": "a33fa6b7af5cb6bac61d91ed898ac284f231e98d",
      "tree": "e4ed8fa7a73cb129fb79957e851f4cc21770bf15",
      "parents": [
        "b3a5eae8a3de7855307c9ee5fa80126c12ac46cf"
      ],
      "author": {
        "name": "Super Chiba",
        "email": "telexes.vent.06@icloud.com",
        "time": "Tue Jul 29 15:06:44 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 29 15:06:44 2025 -0400"
      },
      "message": "Add native Apple Silicon (ARM64) support for zap-cli builds (#1607)\n\n* Add native Apple Silicon (ARM64) support for zap-cli builds\n\n  - Add node18-macos-arm64 target to pkg configuration in package.json\n  - Update pack-cli.js to properly handle ARM64 binary packaging\n  - Remove outdated comments about ARM64 limitations\n  - Enable native ARM64 compilation alongside existing x64 builds\n\n  This resolves the issue where zap-mac-arm64.zip contained an Intel\n  x86_64 binary requiring Rosetta translation on Apple Silicon Macs.\n\n* use `-x64` suffix for source binary when packing macOS x64 cli\n\n* `pkg:mac` should also build for arm64\n\n---------\n\nCo-authored-by: Kiel Oleson \u003ckielo@apple.com\u003e\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e"
    },
    {
      "commit": "b3a5eae8a3de7855307c9ee5fa80126c12ac46cf",
      "tree": "0d84898fd456fd0957aee637501c4a9f63b6dc93",
      "parents": [
        "693a608e8c54b9a25072436e7c7a2fec9ffa95a3"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Thu Jul 24 14:25:46 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 24 14:25:46 2025 -0400"
      },
      "message": "Cluster Feature Page - Enable feature toggling and sync with device type feature page (#1604)\n\n* cluster feature page phase 2\n\n* add and fix unit tests"
    },
    {
      "commit": "693a608e8c54b9a25072436e7c7a2fec9ffa95a3",
      "tree": "5c2608268530c0033abc1309b6797c8a94d0afef",
      "parents": [
        "37668501179cc491c7712b26db09a0d99aa85d41"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Tue Jul 22 11:38:49 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 22 11:38:49 2025 -0400"
      },
      "message": "Fix Security and Reliability issues on SonarQube (#1623)\n\n* fix sonarqube issues"
    },
    {
      "commit": "37668501179cc491c7712b26db09a0d99aa85d41",
      "tree": "fadeb320be6cb1c60d887ec69e300d0932729af3",
      "parents": [
        "a5a8b56d5e813ceebe8c323d4bafe181d4d682d6"
      ],
      "author": {
        "name": "Amine Alami",
        "email": "43780877+Alami-Amine@users.noreply.github.com",
        "time": "Tue Jul 22 16:30:38 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 22 16:30:38 2025 +0200"
      },
      "message": "[Matter] Adding IsReadable Flag to be able to configure Write-only attributes (#1619)\n\n* Adding Readable Flag and Attribute Mask\n\n* removing TODO\n\n* adding readable\u003dfalse to writeOnly attribute in unit testing ZAPXML\n\n* Removing Attribute Mask changes that impact Zigbee and NOT Matter\n\n* Revert \"Removing Attribute Mask changes that impact Zigbee and NOT Matter\"\n\nThis reverts commit 4f81b1cad65e8a2ace2e9d422ae7e0f5631bd289.\n\n* moving readable argument to end of attribute_mask function\n\n* Fixing Unit Test\n\n* Adding schema\n\n* Removing Attribute_mask changes that impact Zigbee Only\n\n* Condition Readable flag generation with a ZAP Template Option\n\n* Add unit tests for new endpoint config\n\n* Adding Unit Test to Matter3 suite\n\n* Adding a NOT testcase"
    },
    {
      "commit": "a5a8b56d5e813ceebe8c323d4bafe181d4d682d6",
      "tree": "fbc09bbcbdbc8b07dcd79fc49522bb43888e5074",
      "parents": [
        "4e7d6821a33dccc9fcf745461b0e6eaa39d26c6f"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Jul 17 11:18:52 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 17 11:18:52 2025 -0700"
      },
      "message": "- Adding sonarqube integration for ZAP. Just add your token to sonar-project.properties and run \u0027npm run sonar\u0027 (#1620)\n\n- Updating sonar-scanner as a dev dependency only\n- JIRA: ZAPP-1644"
    },
    {
      "commit": "4e7d6821a33dccc9fcf745461b0e6eaa39d26c6f",
      "tree": "b335de06eeec9ac96a072fabb26e67af69cc06ec",
      "parents": [
        "93f5d146e65acfd2144b89dc5a97ef19591c6002"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Jul 08 12:42:28 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 08 12:42:28 2025 -0400"
      },
      "message": "- Minor cleanup on min/max values when they are not resolved correctly (#1618)\n\n- Reverting the changes made to typecase the attribute values based on size and sign and sticking to uint16_t as before\n- Github: ZAP #1615"
    },
    {
      "commit": "93f5d146e65acfd2144b89dc5a97ef19591c6002",
      "tree": "511071c8995dc0d34238b27fe1eb3e8c9ed846a1",
      "parents": [
        "e1b545669d53b19f6ac1847dacfe71473a312de7"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Jul 03 15:35:25 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 15:35:25 2025 -0400"
      },
      "message": "Fixing the generation for Attribute Min Max used in endpoint_config.h (#1617)\n\n- Fixing the generation of min and max values to be auto assumed and generated correctly when either min or max are mentioned instead of both min and max\n- Also making sure we do not always typecase everything to (uint16_t) but instead typecast the values based on size and sign\n- Updating existing tests\n- For unit testing removing max from BallastFactorAdjustment attribute and making sure 0xFF is generated for \u0027{ (uint8_t)0xFF, (uint8_t)0x64, (uint8_t)0xFF }, /* BallastFactorAdjustment */\u0027\n- Github: ZAP#1615"
    },
    {
      "commit": "e1b545669d53b19f6ac1847dacfe71473a312de7",
      "tree": "f967d43cc895ce4d196251f3abf9f60659689f1e",
      "parents": [
        "ecced085bce3843ec10d38e2c95a51fc5173395c"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Wed Jul 02 14:12:01 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 15:12:01 2025 -0400"
      },
      "message": "Re: Update iteration keyword replacement to have `tokens to upper camel case` (#1616)\n\n* Move helpers for strings to support the token-based asUpperCamelCase.\n\nExisting string casing works differently for names containing \".\" in\nthem: matter has `Abc 1.2 Def` translated to `Abc12Def` where as\nexisting string utils has it as `Abc1.2Def`.\n\nChanges:\n  - move the token-based upperCamelCase into string utils\n  - add unit tests\n  - share the code between matter and util\n\n* Update src-electron/util/string.js\n\n* keeping iterator pattern `touppercamelcase` for backwards compatibility\n\n---------\n\nCo-authored-by: Andrei Litvin \u003candreilitvin@google.com\u003e\nCo-authored-by: Andrei Litvin \u003candy314@gmail.com\u003e\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e"
    },
    {
      "commit": "ecced085bce3843ec10d38e2c95a51fc5173395c",
      "tree": "20e79ca4f59f005b43071a46d1cda6524e1f974d",
      "parents": [
        "dbe4ed516e82c9a958a31e2e1573d5cd15799657"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Jun 26 16:02:22 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 16:02:22 2025 -0400"
      },
      "message": "When closing ZAP sometimes a system error shows up (#1613)\n\n- Believe that this was being caused by asynchronous reporting that we do for dirty flag and session notification counts on a periodic interval. When we close ZAP some of these reporting events are running queries on a closed database and thus throw a bunch of errors. The changes here stop the asynchronous reporting events from running when the database has been closed.\n\n- Taking AI\u0027s suggestion on the PR to put it in a try catch block\n\n- Adding error handling as suggested by the github AI assistant on the PR. The main reason db._closed is used is because when this chnage was not there and ZAP is closed/quit then a bunch of errors pop up.\n- JIRA: ZAPP-1607"
    },
    {
      "commit": "dbe4ed516e82c9a958a31e2e1573d5cd15799657",
      "tree": "532a63c01b0fffff9ac232f4e898bf56ef30f75f",
      "parents": [
        "e76a9f0b579a7ec8e8bee34202360a8c29db0b0c"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Mon Jun 09 12:41:32 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 09 12:41:32 2025 -0400"
      },
      "message": "sdk root is always there so check sdkProvidedProperties first because if it is present it should be used (#1606)\n\n"
    },
    {
      "commit": "e76a9f0b579a7ec8e8bee34202360a8c29db0b0c",
      "tree": "b194f76c247415e9d8535572eb44fe5855530d14",
      "parents": [
        "adca046060b477f02c161ab37e21f85161d1126f"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Mon Jun 09 10:08:56 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 09 11:08:56 2025 -0400"
      },
      "message": "Adding helpers to generate cluster specific object files (#1603)\n\n"
    },
    {
      "commit": "adca046060b477f02c161ab37e21f85161d1126f",
      "tree": "5ed4a6093cde8322c5d0542929f14177b9ce4071",
      "parents": [
        "f3e70da3157a39eb7d8a180bbfefc2ba699622c3"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Jun 09 10:20:56 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 09 10:20:56 2025 -0400"
      },
      "message": "Minor validation error fix (#1605)\n\n"
    },
    {
      "commit": "f3e70da3157a39eb7d8a180bbfefc2ba699622c3",
      "tree": "fb846e2573a0e2c3d382919f4ad2bb048ddf731b",
      "parents": [
        "22a7ca3e860f2ec267690e7623e86868ff1bd61c"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Thu May 22 09:36:50 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 22 09:36:50 2025 -0400"
      },
      "message": "show save button in ide when dirtyflag is sent to parent (#1594)\n\n* show save button in ide when dirtyflag is sent to parent\n\n* remove redundant logic\n\n* no point in having the button disapear the way the current logic works\n\n* only show if stsApplication\n\n* further cleanup, adding query to state so do not have redundant logic\n\n* more cleanup\n\n* even more cleanup\n\n* cleanup\n\n* remove unused code\n"
    },
    {
      "commit": "22a7ca3e860f2ec267690e7623e86868ff1bd61c",
      "tree": "8179c9273d91533965dc8c431f18c7717a204156",
      "parents": [
        "edb12bb671e50d1adb6755c5da7e983ad857a1ce"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Tue May 20 16:02:55 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 20 16:02:55 2025 -0400"
      },
      "message": "Add Confirmation Dialog on Device Type Feature Toggle and Disable Toggling when Related Cluster is Disabled (#1554)\n\n* display confirm dialog after toggling feature\n\n* show warning and disable change for features with disabled cluster"
    },
    {
      "commit": "edb12bb671e50d1adb6755c5da7e983ad857a1ce",
      "tree": "e7f43019ffd2223afa7f43cacd1c039f212bd1f0",
      "parents": [
        "af9340b21c372169775f061bb181a57672fbd615"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Wed May 14 15:44:19 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 14 16:44:19 2025 -0400"
      },
      "message": "Revert \"update build and release workflow (#1597)\" (#1599)\n\nThis reverts commit b3c77e6acf71d057bf46635f360926f548fd97f4."
    },
    {
      "commit": "af9340b21c372169775f061bb181a57672fbd615",
      "tree": "68bc78af90c8a398f776fe383cff8f791291572b",
      "parents": [
        "e4b22bb1cebbd0a13172ad27b210e4ebac31b9e8"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue May 13 12:56:32 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 13 12:56:32 2025 -0400"
      },
      "message": "Adding upgrade rule mechanism in ZAP for SDKs (#1589)\n\n- Users can now include an upgrade rules json file in the zcl.json file which has a list of all the upgrade rules that may be needed when a user updates an existing app from one version of the GSDK to another.\n- The upgrade rules json file lists a set of upgrade rules scripts with their priority as can be seen in upgrade-rules.json file. The scripts are run in order of priority with lower number signifying higher priority\n- The upgrade rules return an object including a message and status which helps determine if an upgrade rules was actually executed or not. These results can be output into a yaml file if required for post analysis on which upgrade rules ran on a certain .zap file once the GSDK was updated.\n- Adding unit tests to update cluster revision attribute of all clusters\n- Handling the multi protocol use case and adding unit tests that make sure that only the appropriate endpoints are updated when upgrade rules json files from both zigbee and matter exist\n- Adding unit tests for matter only .zap file\n- Adding documentation on how to add upgrade rules to your SDK\n- Adding the update keys available to the context in postLoad\n- Add unit tests to check the order in which the upgrade rules were run\n- Github: ZAP#1020"
    },
    {
      "commit": "e4b22bb1cebbd0a13172ad27b210e4ebac31b9e8",
      "tree": "d0ccbcf4bed2bc5b7a643dbbd820f08364aed28f",
      "parents": [
        "726779bb1699c649df5ba4dfbb1923e348d9d475"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Tue May 13 10:05:00 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 13 10:05:00 2025 -0400"
      },
      "message": "ide integration fix (#1587)\n\n* ide integration fix\n\n* actually call the variable\n\n* replace all paths with sdkProvidedProperties\n\n* fix another hardcoded path\n\n* maintain backwards compatibility\n\n* fix syntax error\n\n* only pass in one path"
    },
    {
      "commit": "726779bb1699c649df5ba4dfbb1923e348d9d475",
      "tree": "1b10797f8c4f34cf39ac489dc80982053060e07f",
      "parents": [
        "b3c77e6acf71d057bf46635f360926f548fd97f4"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Mon May 12 13:30:14 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 12 13:30:14 2025 -0400"
      },
      "message": "wait for server (#1588)\n\n"
    },
    {
      "commit": "b3c77e6acf71d057bf46635f360926f548fd97f4",
      "tree": "3d062c4147a372d503a72d5295730d4246549fba",
      "parents": [
        "8043f5632fea9a037eb527a23f1e8617e437056e"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Mon May 12 09:36:44 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 12 10:36:44 2025 -0400"
      },
      "message": "update build and release workflow (#1597)\n\n- Clean up code and fix release.yml workflow\n- Add zap-cli to .deb and .rpm packages via afterPack hook in Electron Builder\n- Include zap-cli in .zip files via afterAllArtifactsBuild hook in Electron Builder\n- Package ARM64 zap-cli binary for macOS ARM64 zap release"
    },
    {
      "commit": "8043f5632fea9a037eb527a23f1e8617e437056e",
      "tree": "b7b1db37d9881b80f371915347761888dbd4e3f6",
      "parents": [
        "3d572e8a4f3b202466fc380aeca4dc3320534f71"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Fri May 09 15:17:54 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 09 15:17:54 2025 -0400"
      },
      "message": "Generating correctly for string type attributes which have numbers only as their default values when using helper-endpointconfig.js (#1595)\n\nGithub: ZAP#1504"
    },
    {
      "commit": "3d572e8a4f3b202466fc380aeca4dc3320534f71",
      "tree": "697d66c457dfeb99e8ee6874dfc0468a0f529b1c",
      "parents": [
        "e26405cf5331fdbc7e3b2866066f8d790d1685ed"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Wed May 07 11:29:27 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 11:29:27 2025 -0400"
      },
      "message": "Resolve element optionality via both optional attribute and conformance (#1578)\n\n* parse isOptional from both optional attribute and conformance"
    },
    {
      "commit": "e26405cf5331fdbc7e3b2866066f8d790d1685ed",
      "tree": "b7f75ab06924805aaf5aef2a634d217d9671552d",
      "parents": [
        "5d1df1c4138a5b050ef936eca5e5a392f0a93fcd"
      ],
      "author": {
        "name": "Boris Zbarsky",
        "email": "bzbarsky@apple.com",
        "time": "Tue May 06 12:45:59 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 06 12:45:59 2025 -0400"
      },
      "message": "Fix Matter helpers to do the right thing with global enums/bitmaps. (#1593)\n\n"
    },
    {
      "commit": "5d1df1c4138a5b050ef936eca5e5a392f0a93fcd",
      "tree": "0d49896acb28c3a6cb277c4aeea81fe05664ce7f",
      "parents": [
        "e74dd3598294d37b8a321a14dc4d36441eacc683"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Fri May 02 13:20:54 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 02 13:20:54 2025 -0400"
      },
      "message": "Adding search by enum/bitmap name and Cluster name (#1590)\n\nGithub: ZAP#1586"
    },
    {
      "commit": "e74dd3598294d37b8a321a14dc4d36441eacc683",
      "tree": "0c23f18d34b59fd56cb4b85b8c11b9794c264c56",
      "parents": [
        "4aaa9734e3f50604f56adb765037c157e47f0bdf"
      ],
      "author": {
        "name": "Boris Zbarsky",
        "email": "bzbarsky@apple.com",
        "time": "Tue Apr 29 14:09:33 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 29 14:09:33 2025 -0400"
      },
      "message": "Fix asStructPropertyName to handle pluralized acronyms better. (#1583)\n\nThe old code turned \"URLs\" into \"urLs\".  The new thing turns it into \"urls\"."
    },
    {
      "commit": "4aaa9734e3f50604f56adb765037c157e47f0bdf",
      "tree": "6fa7df811053f943aaeb4ddbc910161b61f72f6c",
      "parents": [
        "d785a36249e6742cfb06d95e2ad73837260724ef"
      ],
      "author": {
        "name": "Boris Zbarsky",
        "email": "bzbarsky@apple.com",
        "time": "Mon Apr 28 14:07:18 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 28 14:07:18 2025 -0400"
      },
      "message": "Fix various helpers that were not handling name collisions between global and cluster-specific structs. (#1584)\n\nMerging bypassing CI failures: matter failures are expected due to sorting order change. CI will turn back green once we use the new version of ZAP in matter."
    },
    {
      "commit": "d785a36249e6742cfb06d95e2ad73837260724ef",
      "tree": "8b5af711fc8a9b90e7e454d7943aaecaa1803e0e",
      "parents": [
        "43455f06142676fbe9def43c21bdfdb02d5a1f62"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Apr 24 10:17:55 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 24 11:17:55 2025 -0400"
      },
      "message": "Update tests for Cluster Extensions in Custom XML (#1582)\n\n- Add command with args in test cluster extension"
    },
    {
      "commit": "43455f06142676fbe9def43c21bdfdb02d5a1f62",
      "tree": "6b309cf984cd142ab07109bcc1faaa7023e3a64e",
      "parents": [
        "ff46f972d0e6a0930b470762149fd800c952b5f9"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Wed Apr 23 15:35:51 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 23 16:35:51 2025 -0400"
      },
      "message": "Adding db constraints for enum items, struct items and bitmap fields (#1581)\n\n- also fixing related bug"
    },
    {
      "commit": "ff46f972d0e6a0930b470762149fd800c952b5f9",
      "tree": "17485253e39bb7a10d410b60fd2b9cbf228705f0",
      "parents": [
        "ef4258900cec500d5710ab9169b51eb2cb3885db"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Apr 23 10:25:16 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 23 10:25:16 2025 -0400"
      },
      "message": "- Add another templates json file into the package tables when any json files within it are updated. The newly added templates json file is in sync and the older ones will be out of sync in the package table when a nested json file is changed (#1577)\n\n- Removing the zcl extensions check because that is now covered by the newly added code. Not adding further tests for this because it is already covered in zcl-loader.test.js. See: test changing the zcl extension file in a top level templates json file and make sure it is re-loaded again\n- JIRA: ZAPP-1297"
    },
    {
      "commit": "ef4258900cec500d5710ab9169b51eb2cb3885db",
      "tree": "876ae5e71d0458feb5c7e2bbc8f23b7ed0ffd2f6",
      "parents": [
        "a4e278177103bccaf0c4da1573e77933929107dd"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Tue Apr 22 15:36:35 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 22 16:36:35 2025 -0400"
      },
      "message": "Adding default value column for command args, event fields and struct items (#1580)\n\n* Adding default value column for command args, event fields and struct items:\n\n- Default values can be defined for command args, event fields and struct items. These default values can be accessed through zcl static helpers\n- Added tests"
    },
    {
      "commit": "a4e278177103bccaf0c4da1573e77933929107dd",
      "tree": "1ed90d0dd093d2527b1b17169069c93d5c16c0a0",
      "parents": [
        "317a7dbbd79b81c81eab39be3a5bef6c556a9872"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Apr 22 14:12:08 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 22 14:12:08 2025 -0400"
      },
      "message": "Fix endianness issue when the hex value length is odd (#1579)\n\n* Fix endianness issue when the hex value length is odd\n\n- See the unit test to understand the issue here where 1600 should not be 0x640 but 0x0640 for proper endian conversion\n- Added unit tests\n- Updating the matter build for ZAP and Matter repo integration testing\n- ZAPP-1610"
    },
    {
      "commit": "317a7dbbd79b81c81eab39be3a5bef6c556a9872",
      "tree": "5746effbc560161976ec02c8aa68d6e0008d1806",
      "parents": [
        "74eadd0e9256ac2f411bbe02421cfe7d6ac43107"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Apr 15 08:46:06 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 15 08:46:06 2025 -0400"
      },
      "message": "- Extending existing helper (#1575)\n\n- JIRA: ZAPP-1545"
    },
    {
      "commit": "74eadd0e9256ac2f411bbe02421cfe7d6ac43107",
      "tree": "b0ba74ae99643343e09f26b7763b387c37ca979a",
      "parents": [
        "e40b09d63affc19754fbc532079888b8e7ad46af"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Apr 14 08:51:53 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 14 08:51:53 2025 -0400"
      },
      "message": "Fix the Legal Clusters view where users will only see clusters associated with a device type and not just enabled clusters which is wrong (#1573)\n\n- Use the device types on the selected endpoint to figure out the device type clusters and then only show those clusters in the UI.\n- The Legal clusters UI view will also not allow users to enable/disable non compliant clusters and also not show non compliant clusters.\n- Adding cypress tests for filters of legal and enabled clusters\n- Add more tests where the clusters are check for enablement when clicking on the client and server checkboxes\n- Github: ZAP#316"
    },
    {
      "commit": "e40b09d63affc19754fbc532079888b8e7ad46af",
      "tree": "219f21e66f00d586a83df6934d53f468b39b1de4",
      "parents": [
        "b9342bd4199f3cb554b0d877768dba76fd47ef6c"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Thu Apr 10 14:10:42 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 10 15:10:42 2025 -0400"
      },
      "message": "Fix: error in postCluster (#1572)\n\n"
    },
    {
      "commit": "b9342bd4199f3cb554b0d877768dba76fd47ef6c",
      "tree": "d2a178e497b6924fe173d421f61239d2d45be585",
      "parents": [
        "973efe773ac8bcdf77083296c536984480752e2f"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Thu Apr 10 13:31:44 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 10 13:31:44 2025 -0400"
      },
      "message": "adding icon  (#1571)\n\n* adding icon as a workaround\n\n* point to an actual icon\n\n* include zap icon in the zip\n\n* fix path\n\n* PR review and verify zap.png"
    },
    {
      "commit": "973efe773ac8bcdf77083296c536984480752e2f",
      "tree": "4ca9ab3310386c3d47ca62ac486389fd657ac5c4",
      "parents": [
        "5458d9a32eaa81c50a06f7cd535fa4a645880188"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Wed Apr 09 16:25:18 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 09 17:25:18 2025 -0400"
      },
      "message": "Fix: Adding device types through custom XML (#1565)\n\n* Fix: Adding device types through custom XML\n\n- Fix front-end issue for custom XML device types\n- Fix device type reference updating for custom XML device types\n- Fix use case where custom XML device type is being used for different sessions using different zcl files\n- Fix default attributes and commands enabled when custom cluster is enabled\n- Fix endpoint-config helper when custom xml device type is used\n- Fix file open for .zap file with custom xml device type\n- Added tests\n\n* clean up"
    },
    {
      "commit": "5458d9a32eaa81c50a06f7cd535fa4a645880188",
      "tree": "3976ba12dc23cd6efbd548ddbd0a4ddf10570da2",
      "parents": [
        "1a2f946eccc46eceac8bc8b3f6e96163da67fbb5"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Apr 08 08:53:39 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 08 08:53:39 2025 -0400"
      },
      "message": "Clean up helper when structs with same name exist as a global struct and a cluster specific one (#1562)\n\n* Clean up helper when structs with same name exist as a global struct and a cluster specific one\n\n- Add selectStructByNameAndClusterName because selectStructByNameAndClusterId could not be used for some of our existing helpers such as asObjectiveCClass.\n- Update query-util.js to form the correct data type retrieval using data type name and cluster name: sqlQueryForDataTypeByNameAndClusterName\n- Update asObjectiveCClass with selectStructByNameAndClusterName instead of selectStructByName\n- Adding unit test for the above\n- Github: ZAP#1559"
    },
    {
      "commit": "1a2f946eccc46eceac8bc8b3f6e96163da67fbb5",
      "tree": "82d59f93aa89e53317f9fda260e6d2cf3fbcdbfc",
      "parents": [
        "4c9871ccde830141ee0c05c8e57d8e700df73902"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Apr 03 17:21:29 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 03 17:21:29 2025 -0400"
      },
      "message": "Increasing timeout because for now it is not reasonable for all machines (#1564)\n\n"
    },
    {
      "commit": "4c9871ccde830141ee0c05c8e57d8e700df73902",
      "tree": "a3e96f78455e8699b480d9b91ffe3b53d63d2d03",
      "parents": [
        "3375934b16703735e3763eaa07b50f4379c91736"
      ],
      "author": {
        "name": "Andrei Litvin",
        "email": "andy314@gmail.com",
        "time": "Thu Apr 03 16:55:29 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 03 16:55:29 2025 -0400"
      },
      "message": "Support touppercamelcase in iterator for split templates (#1566)\n\n* Support touppercamelcase and unit tests\n\n* Documentation update\n\n* Undo some formatting\n\n* Undo some formatting\n\n---------\n\nCo-authored-by: Andrei Litvin \u003candreilitvin@google.com\u003e"
    },
    {
      "commit": "3375934b16703735e3763eaa07b50f4379c91736",
      "tree": "4f352244844e879eb70f6ee01bb2f1e67b67b54d",
      "parents": [
        "8d714d64ec0214bb98640fef9317ec086ad16810"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Thu Apr 03 15:56:19 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 03 15:56:19 2025 -0400"
      },
      "message": "Cluster Feature Page - Display Feature Info (#1544)\n\n* cluster feature page phase 1\n\n* add unit test for API getting featureMap value"
    },
    {
      "commit": "8d714d64ec0214bb98640fef9317ec086ad16810",
      "tree": "ef62039d5de08a1d95050ccda447e1b757b8e155",
      "parents": [
        "d814b12278853925e133af7d6e5fca9a2990ebcd"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Apr 03 09:35:06 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 03 09:35:06 2025 -0400"
      },
      "message": "Cleaning up loadPartial to make sure they are registered properly before generation (#1558)\n\n- The partialFile loading await fsPromise.readFile(singlePkg.path, \u0027utf8\u0027); is now done before registering the partial.\n- We are hitting a use case intermittently where the partial is not loaded and generation is triggered. Believe that this was happening due to partial file loading and registering happening asynchronously(Not always before generation).\n- JIRA: ZAPP-1623"
    },
    {
      "commit": "d814b12278853925e133af7d6e5fca9a2990ebcd",
      "tree": "df6c3a16153969f3068b59e764e1225ece1e68ba",
      "parents": [
        "eceeced69103800a32ee65e402955cbc040daf20"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Wed Apr 02 13:20:42 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 02 13:20:42 2025 -0400"
      },
      "message": "Handling struct items properly when we have a global and cluster specific struct with the same name (#1557)\n\n- Fixed the zcl_struct_items_by_struct_and_cluster_name helper for this global vs cluster specific struct items\n- Added tests for it\n- Github: ZAP#1551"
    },
    {
      "commit": "eceeced69103800a32ee65e402955cbc040daf20",
      "tree": "893e69d7efba974bb60b5d77c4d53edd314fce89",
      "parents": [
        "dbef348fc4ec9b2298211dc48fd03d2effe5399b"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Apr 01 09:41:46 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 01 09:41:46 2025 -0400"
      },
      "message": "Allow user to edit a device type on an existing endpoint as a new endpoint config and not an overwrite on existing endpoint config (#1541)\n\n- Currently when a user edits the device type on an endpoint configuration then the configuration is overwritten on top of the existing endpoint configuration.\n- However the above can lead to non-compliant device type as per the protocol specification if the users are not careful.\n- With this change a dialogue pops up when the user changes the device type to either edit on top of existing endpoint config or add as a new endpoint config.\n- Added cypress tests to cover the same\n\n- Add changes to to UI by removing v-close-up and add persist so that the UI pop ups don\u0027t vanish when clicking outside the popups\n- Github: ZAP#1125"
    },
    {
      "commit": "dbef348fc4ec9b2298211dc48fd03d2effe5399b",
      "tree": "110126abb61408db2e936fe525c6840b4f727332",
      "parents": [
        "ce14d1a82f296bb2b8edf359372a2c9fb30aa7b7"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Mon Mar 31 16:58:00 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 31 16:58:00 2025 -0400"
      },
      "message": "Creating extensions for ZAP files using .zapExtension files (#1552)\n\n- .zapExtension files can now be used to extend the .zap files to add additional clusters, commands or attributes on an endoint\n- Adding the logic to do this during generation or during file open using command line arguments.\n- Adding unit tests\n- Adding documentation on usage\n- Added an attribute to the xml so updated one of the existing tests\n- Fixing existing tests and adding tests for zap extensions with clusters and attributes on an endpoint type id\n- Linking the extension file to the endpoint identifiers and not endpoint type ids\n- Github: ZAP#1254"
    },
    {
      "commit": "ce14d1a82f296bb2b8edf359372a2c9fb30aa7b7",
      "tree": "d8f46face24878f009846d08bfff94bf717205b2",
      "parents": [
        "dc0747a9bb11c842784c9486e972d6b755cfac6a"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Fri Mar 28 11:54:51 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 28 12:54:51 2025 -0400"
      },
      "message": "Fix: Handling package paths in different drives than user home dir or zap file location (#1547)\n\n"
    },
    {
      "commit": "dc0747a9bb11c842784c9486e972d6b755cfac6a",
      "tree": "ef589629b56775cdc5c9083732266614305f3af0",
      "parents": [
        "b14541b754d757e627d8775d6a6e17d93a3fb102"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Thu Mar 27 14:48:25 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 27 14:48:25 2025 -0400"
      },
      "message": "Provide the metadata for tooling that cares about executing zap and supports the JSON-based metaformat. (#1550)\n\n* add slt metadata\n\n* add function"
    },
    {
      "commit": "b14541b754d757e627d8775d6a6e17d93a3fb102",
      "tree": "3b70c4916a5fded6c1f4d624248e768ab0f96512",
      "parents": [
        "abc348f33e4b59d9fc8068a7056590910c0df9fe"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Thu Mar 27 09:41:19 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 27 09:41:19 2025 -0400"
      },
      "message": "Set warnings for enabled Matter commands with disabled response command (#1536)\n\n* add triggers for command response and endpoint deletion, add unit tests\n* add warning on import and add unit test\n* log warning to console"
    },
    {
      "commit": "abc348f33e4b59d9fc8068a7056590910c0df9fe",
      "tree": "38018ba67ec6960c6d315518745e8f3f6e0ba1f0",
      "parents": [
        "7dd15ecfa0af31c04e9b88c206ebfa726ed07333"
      ],
      "author": {
        "name": "Paul Regan",
        "email": "64710345+paulr34@users.noreply.github.com",
        "time": "Tue Mar 25 15:05:58 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 25 15:05:58 2025 -0400"
      },
      "message": "Only Zigbee can\u0027t have min/max for attributes larger than 2 bytes (#1546)\n\n* bug fix, only zigbee attributes cannot have min max larger than  2 bytes\n\n* pr review changes\n\n* change back to zigbee and change the check to a db enum"
    },
    {
      "commit": "7dd15ecfa0af31c04e9b88c206ebfa726ed07333",
      "tree": "8133a862a6a56adaaf41aa3df2b31f5f60ba2547",
      "parents": [
        "049aa3478f1ac4922b7629bcf574ba0dc43691be"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Thu Mar 20 13:35:20 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 20 13:35:20 2025 -0400"
      },
      "message": "Allow cluster specific and generic data types with the same name in the XML (#1542)\n\n* Allow cluster specific and generic data types with the same name in the XML\n\n- This solves the issue of loading a same named generic and cluster specific data type.\n- The issue was with the generic data type type searches not checking if their cluster reference does not exist and thus getting the cluster specific data type instead. Now that check is added and duplicates issue is resolved\n- Ran into another ZAP generation issue while running zap_regen_all.py and fixed that error in helper.js\n- add tests for loading same named data types where one is generic and another is cluster specific\n- Github: ZAP#1540"
    },
    {
      "commit": "049aa3478f1ac4922b7629bcf574ba0dc43691be",
      "tree": "7d6ff373916e4d813a7c006dcfdcc1124131c0ad",
      "parents": [
        "d4396001d07b16253e3b02f5a5bfb39fd5d9b713"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Mar 18 17:10:52 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 17:10:52 2025 -0400"
      },
      "message": "Timeout generation with an error if the template generation is taking forever (#1539)\n\n- In template-engine.js, produceContent function, timing out the handlebars template handler if it takes more than a certain amount of time for generation because this can lead to ZAP just hanging forever.\n- Also throwing errors when there is no content generated out of a generation template file\n- Cleaning up the promises in generateAllTemplates because it was incorrect\nFixing the deferred loading and generation in templates with after clause\n\n- In the after helper, adding it to the global deferred block array\n- In template engine adding deferredblock to the context and then later adding it to the content\n- Removing the entire global.promises.push(syncPromise) which makes the generation of templates hang. Look at the test case which makes this hang\n- Adding tests to make sure templates no longer hang and also noticing substantial improvement in our generation time after this change\n- This also allows better usage of promised handlebar helpers where you can now do {{#if promise}} if required\n- Github: ZAP#792"
    },
    {
      "commit": "d4396001d07b16253e3b02f5a5bfb39fd5d9b713",
      "tree": "d4ae59ed4674cb25ca5cb9746939cb8a2437dc74",
      "parents": [
        "b7c0b36247c71298453e8e7a804cbebd20e41785"
      ],
      "author": {
        "name": "Ethan Zhou",
        "email": "73028112+ethanzhouyc@users.noreply.github.com",
        "time": "Thu Mar 13 10:47:55 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 13 10:47:55 2025 -0400"
      },
      "message": "Adapt ZAP to Support Both List Type Definition Formats for Attributes (#1530)\n\n* support parsing list type in both formats\n\n* add unit test"
    },
    {
      "commit": "b7c0b36247c71298453e8e7a804cbebd20e41785",
      "tree": "e29982dd887e4ae6931951a99954c815eee8096c",
      "parents": [
        "c903b91b1ab82f9b776ed4d0f1ff1e380e42a885"
      ],
      "author": {
        "name": "Dhruv Chandwani",
        "email": "dhchandw@silabs.com",
        "time": "Wed Mar 12 13:05:58 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 12 13:05:58 2025 -0400"
      },
      "message": "Fix: dirty state incorrectly being set to 1 upon .zap file open (#1537)\n\nFix: dirty state incorrectly being set to 1 upon .zap file open\n\n- dirty state being incorrectly set to 1 upon .zap file open when it has 2 or more custom xml packages\n- consistent package ordering in .zap file"
    },
    {
      "commit": "c903b91b1ab82f9b776ed4d0f1ff1e380e42a885",
      "tree": "d434b7efc29a698becf665f781da17ff319ba0ba",
      "parents": [
        "f39dca6da56a53eb1723c90edccc6e8dfa8d352b"
      ],
      "author": {
        "name": "Bharat Raju",
        "email": "brdandu@silabs.com",
        "time": "Tue Mar 11 15:43:23 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 11 15:43:23 2025 -0400"
      },
      "message": "Allow Features to have cluster codes just like bitmaps and other data types (#1538)\n\n- Loading the data type and bitmap tables by cluster codes in features\n- Adding tests to check that Feature bitmap and bitmap field entries are loaded per cluster mentioned\n- Github: ZAP#1306"
    }
  ],
  "next": "f39dca6da56a53eb1723c90edccc6e8dfa8d352b"
}
