)]}'
{
  "log": [
    {
      "commit": "b107496fa45b2e65cbc34635fc439a34c017bfcb",
      "tree": "e2d3e81821670b8b7fd944e4e69635b5230abdb0",
      "parents": [
        "0ee78a3946475a3103acae9acb5acc9de9eb0051"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Mon Aug 03 01:09:57 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 03 07:31:27 2026"
      },
      "message": "setup: Publish cros_docker image version 20260803090847.\n\nA new release of cros_docker image on 20260803090847,\nbuilt from source using hash 0ee78a3946475a3103acae9acb5acc9de9eb0051.\nPublished as factory-server-20260803090847-0ee78a-docker-27.5.0.txz.\n\nMajor changes:\n0ee78a394 umpire_dut_commands_servicer: Set file permissions to 644 after uploaded\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: If9c74ac6acfbe969b365c6519640a4da6b522b94\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8175765\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "0ee78a3946475a3103acae9acb5acc9de9eb0051",
      "tree": "888031072ef056402aa1955504b5f4777c03dea3",
      "parents": [
        "b71ef71ef2d9e305ad05ac426e5a000967f15ac5"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Wed Jul 29 07:25:37 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Jul 30 08:16:53 2026"
      },
      "message": "umpire_dut_commands_servicer: Set file permissions to 644 after uploaded\n\nIn the XML RPC server, uploaded report files have 644 permission saved\non the umpire server.\n\nBUG\u003db:539801873\nTEST\u003dManually upload a factory report from a Lapis device and inspect\n     the report file permission\n\nChange-Id: Ibaa77d8fb5d95002cd7d149ad11a565613c0c37a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8166280\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "b71ef71ef2d9e305ad05ac426e5a000967f15ac5",
      "tree": "2124655259362890fb547ec6c08c20344792f0b2",
      "parents": [
        "4ef44ee18600e2a6855c709ebc49353abff2a22c"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Wed Jul 29 02:48:10 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jul 29 05:12:58 2026"
      },
      "message": "setup: Publish cros_docker image version 20260729104658.\n\nA new release of cros_docker image on 20260729104658,\nbuilt from source using hash 4ef44ee18600e2a6855c709ebc49353abff2a22c.\nPublished as factory-server-20260729104658-4ef44e-docker-27.5.0.txz.\n\nMajor changes:\n4ef44ee18 fastboot: Add a configurable concurrent limit\ne85d50437 fastboot: correct ip list argument passing\ncefb79ba6 setup: avoid relative path in build file\nf3502b784 dome: Update django to 4.2.28\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I746ce237164876db8aa195ca973fe8b935e58447\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8165840\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "4ef44ee18600e2a6855c709ebc49353abff2a22c",
      "tree": "5d154d43d3e962672085420b10f243255443445f",
      "parents": [
        "e85d5043799a32f7050d4f93e1ff20ea8221dedb"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Jul 27 10:42:47 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jul 28 18:49:26 2026"
      },
      "message": "fastboot: Add a configurable concurrent limit\n\nAdd a configurable concurrent limit for fastboot flashing task to avoid\nnetwork congestion.\n\nBUG\u003db:538500727\nTEST\u003d./fastboot_orchestrator \\\n      -v \\\n      -s fastboot_img_src \\\n      -i ${network_interface_name} ${broadcast_ip} \\\n      -b ${board_name} \\\n      -p ${project_name} \\\n      --idle_timeout 300 \\\n      --max_concurrent_tasks 1\n\nChange-Id: I975382ef237f2cdac6d4599b480d6ca828518b1b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8154119\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "e85d5043799a32f7050d4f93e1ff20ea8221dedb",
      "tree": "ee1b90171ae4874bec56013c31b4912eaf6ae026",
      "parents": [
        "cefb79ba695d7db4a7bb6cd27681072468d56cf5"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Jul 27 10:22:54 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jul 28 18:49:23 2026"
      },
      "message": "fastboot: correct ip list argument passing\n\n`args.extend([\u0027-i\u0027, \u0027 \u0027.join(ip_list)])` make the ip list into a\nsingle string instead of a list.\nCorrect this by extending args with ip list.\n\nBUG\u003db:39416706\nTEST\u003d1) set two ip address in fastboot service through UI\nTEST\u003d2) enable the fastboot service\n\nChange-Id: Ice4d8bc7924e570e99a0a5fc68c9270ccf59ab40\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8152801\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "cefb79ba695d7db4a7bb6cd27681072468d56cf5",
      "tree": "369930bceb9e9916c13bc47a68da566cc21645ef",
      "parents": [
        "f3502b78463691c0608b9954d4270850b20f9d60"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Jul 27 08:00:38 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jul 28 16:46:09 2026"
      },
      "message": "setup: avoid relative path in build file\n\nPreviously, the factory_ufs is built using relative path to\nfactory_installer.\nChange to clone the repo tmp and build from it to avoid including\noutdated scripts in the relative path.\n\nBUG\u003db:539381979\nTEST\u003dcros_docker.sh build\n\nChange-Id: If4c4f0769cf4a028dc8047677b7a1d8f93a1b108\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8152502\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "f3502b78463691c0608b9954d4270850b20f9d60",
      "tree": "28b7662e5a8a49c2e10c186bfb2f050fb33c4810",
      "parents": [
        "95c2d6bc92720b793e87ec5f283154d0fa135a98"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Jul 14 16:22:36 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jul 15 02:40:06 2026"
      },
      "message": "dome: Update django to 4.2.28\n\nThe automated security scanner detected a vulnerabilities in\npy/dome/requirements.txt, update django from 4.2.17 to 4.2.28.\n\nBUG\u003db:534531309\nTEST\u003dmake test\n\nChange-Id: Iccad4e8875da291c630e4d4d8ec72bf81000655a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8090548\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "95c2d6bc92720b793e87ec5f283154d0fa135a98",
      "tree": "8191ee5a0afafb88df4ff44b9767ce4418365a00",
      "parents": [
        "841cc010bf008652cb008aca95515ae9b7a2dbab"
      ],
      "author": {
        "name": "Patryk Duda",
        "email": "patrykd@google.com",
        "time": "Fri Jul 03 11:31:29 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jul 06 16:41:15 2026"
      },
      "message": "finalize_bundle: Allow fingerprint binary to be separated using \u0027-\u0027\n\nEC legacy based firmware uses \u0027_\u0027 as name-version separator, e.g.\n\u0027bloonchipper_v2.0.4277-9f652bb3-RO_v2.0.30778-e07b67c-RW.bin\u0027 while\nZephyr based firmware uses \u0027-\u0027 as separator, e.g.\n\u0027sanok-v2.0.31296-9646457.bin\u0027.\n\nLet\u0027s change regular expression in finalize_bundle.py to allow both\nseparators.\n\nBUG\u003dNone\nTEST\u003dRun CQ with CL that introduces firmware with \u0027-\u0027 separator.\n\nChange-Id: I032d5d4aa11f170a89cf1f93b54b4d3cdf3a1e7c\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8037803\nTested-by: Patryk Duda \u003cpatrykd@google.com\u003e\nReviewed-by: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\nCommit-Queue: Patryk Duda \u003cpatrykd@google.com\u003e\n"
    },
    {
      "commit": "841cc010bf008652cb008aca95515ae9b7a2dbab",
      "tree": "f385a2f2a282c27e8070a9aa066fc13b4136b29b",
      "parents": [
        "a3f93fb0e4a7671f8de9a0a1ac6c75a85e7c02b1"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Jun 30 09:26:42 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 30 13:18:22 2026"
      },
      "message": "setup: Publish cros_docker image version 20260630172520.\n\nA new release of cros_docker image on 20260630172520,\nbuilt from source using hash a3f93fb0e4a7671f8de9a0a1ac6c75a85e7c02b1.\nPublished as factory-server-20260630172520-a3f93f-docker-27.5.0.txz.\n\nMajor changes:\na3f93fb0e fastboot: Clear secure storage\nec5bf0cf9 dome: Add a test for DeleteFactoryDriveForm\n71cc09b86 dome: Update the UI strings to \"Factory Drive\"\nb13671820 dome: Add a test for LogPile\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I86c2ed9fe60a89d599b73076414c11220d3a3e90\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8023942\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "a3f93fb0e4a7671f8de9a0a1ac6c75a85e7c02b1",
      "tree": "d9fadb8a24208576387334f9309787fa6d7f7eb0",
      "parents": [
        "ec5bf0cf9536ed104f08c0c0f176299a268f295a"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Tue Jun 16 12:57:27 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 30 09:02:49 2026"
      },
      "message": "fastboot: Clear secure storage\n\nAdd command to clear secure storage in fastboot service to ensure that\nthe GSC MAC is reset during flashing.\n\nBUG\u003db:498879348\nTEST\u003d./fastboot_orchestrator \\\n        -v \\\n        -s fastboot_img_src \\\n        -i 192.168.1.0/24\n        -b ${board_name} \\\n        -p ${project_name} \\\n        --idle_timeout 300\n\nChange-Id: I95bbfaded7d93a15c50707c9fb5243e2671c8e46\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7950897\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "ec5bf0cf9536ed104f08c0c0f176299a268f295a",
      "tree": "4b63fe1702a7c9c91c6bf3c3d91278c65a677a92",
      "parents": [
        "38aa832662869871c8791af4c2bc15d47f0ea5a2"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Jun 16 05:33:43 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jun 29 05:10:16 2026"
      },
      "message": "dome: Add a test for DeleteFactoryDriveForm\n\nAdd a new unit test for DeleteFactoryDriveForm.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I3bccaea931bec19c7d27231a3ac7d292c1b18e47\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7949377\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "38aa832662869871c8791af4c2bc15d47f0ea5a2",
      "tree": "b7a153ed96db724ce43b47499e16375a35c9e1e9",
      "parents": [
        "2a6177181537e30ece1eba744b827392bf3e951d"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Fri Jun 26 09:43:51 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 26 12:35:47 2026"
      },
      "message": "hwid_extractor: Fix timeout issue\n\nThe base image recently changed the implementation so our HWID extractor\ncannot be initialized. This CL fixes the problem.\n\nBUG\u003db:522627180\nTEST\u003dManually test on a Lapis device\n\nChange-Id: I44fd9535a1e948a2911460115c737994f43b6437\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8010827\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "2a6177181537e30ece1eba744b827392bf3e951d",
      "tree": "e13cf2bd34b0b0ebb2b42e650cf1d651cf143918",
      "parents": [
        "71cc09b8667523a93d9a527043ae5c76f243b5c7"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Fri Jun 26 04:39:09 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 26 09:41:38 2026"
      },
      "message": "hwid_extractor: Improve code style\n\nImprove the HWID Extractor codebase typings and code style. Make private\nproperty names start with underscores.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: Ibb56248a36239de95b42c8edc3fac227b5db0805\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/8009686\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "71cc09b8667523a93d9a527043ae5c76f243b5c7",
      "tree": "2bd4d847e2fdaa3d3ac6ce173ba6d458cafcfa5d",
      "parents": [
        "902b56781de6fbc351e0a935f483176a0834148a"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Jun 23 05:32:35 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Jun 25 09:26:45 2026"
      },
      "message": "dome: Update the UI strings to \"Factory Drive\"\n\nUpdate the UI strings to \"Factory Drive\" for better consistency.\n\nBUG\u003dNone\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I7b6cf2d9f3c36ad3cff077ee0a35d2919f401942\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7977364\nReviewed-by: Cheng-Han Yang \u003cchenghan@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "902b56781de6fbc351e0a935f483176a0834148a",
      "tree": "a8f7a6fe2eaa44df035bf997d7ea3e437dec3f43",
      "parents": [
        "8bc57f3cca0dcda32d340cfa877164577b57b3ad"
      ],
      "author": {
        "name": "Denny Huang",
        "email": "dennyh@google.com",
        "time": "Wed Jun 10 09:35:21 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Jun 13 15:38:24 2026"
      },
      "message": "bundle_creator: uprev toolkit version to 16716.0.0\n\nUprev toolkit version to 16716.0.0 to include CL:7906801 \u0026 CL:7924026.\n\nBUG\u003db:522367874\nTEST\u003dDeploy to dev2 and test with different versions\n\nChange-Id: I575949c701834a1fe301fb9d8b5a7e69c0947a42\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7915650\nTested-by: Denny Huang \u003cdennyh@google.com\u003e\nReviewed-by: Yu-An Wang \u003cwyuang@google.com\u003e\nCommit-Queue: Yu-An Wang \u003cwyuang@google.com\u003e\nAuto-Submit: Denny Huang \u003cdennyh@google.com\u003e\n"
    },
    {
      "commit": "8bc57f3cca0dcda32d340cfa877164577b57b3ad",
      "tree": "b355490ee78bb861b8a083993ae2ec00cb16a12b",
      "parents": [
        "b13671820f7e1d6b5d4bbef28cc0d6aa2b694865"
      ],
      "author": {
        "name": "Denny Huang",
        "email": "dennyh@google.com",
        "time": "Wed Jun 10 19:34:32 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 12 10:42:58 2026"
      },
      "message": "get_version: Support \u0027ap-\u0027 prefix in firmware filenames.\n\nThe regex used to extract RO version and firmware\nname now allows filenames to start with either\n\"ap-\" or \"bios-\" due to CL:7877775 where the\nprefix was changed to \"ap-\".\n\nBUG\u003db:519463495, b:522367874\nTEST\u003dverify EasyBundleCreation works with parameters in b:519463495\n\nChange-Id: Id04444cf6c44274103c04080044a73c57be58b31\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7924026\nReviewed-by: Yu-An Wang \u003cwyuang@google.com\u003e\nTested-by: Denny Huang \u003cdennyh@google.com\u003e\nCommit-Queue: Denny Huang \u003cdennyh@google.com\u003e\n"
    },
    {
      "commit": "b13671820f7e1d6b5d4bbef28cc0d6aa2b694865",
      "tree": "5a64a11ae50ac12382385f272ea6925cda20fbfd",
      "parents": [
        "02557ddfbce2cab94d056e963f9e5c602883cb06"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Jun 11 04:25:29 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 12 10:42:05 2026"
      },
      "message": "dome: Add a test for LogPile\n\nAdd a new unit test for LogPile.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I74babce68c027934960dffe6a31d1217c551cd3b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7921071\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "02557ddfbce2cab94d056e963f9e5c602883cb06",
      "tree": "a902d3ed1a33b00d460078cb8ec50c065c7412d6",
      "parents": [
        "72c823a6ebf8609c3dd1aa821088b7d257924049"
      ],
      "author": {
        "name": "Denny Huang",
        "email": "dennyh@google.com",
        "time": "Mon Jun 08 09:28:08 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jun 08 11:25:34 2026"
      },
      "message": "finalize_bundle: Update regex to support \u0027ap-\u0027 prefix in firmware filenames.\n\nThe regex used to extract RO version and firmware name now allows\nfilenames to start with either \"ap-\" or \"bios-\" due to CL:7877775 where\nthe prefix was changed to \"ap-\".\n\nBUG\u003db:519463495\nTEST\u003dpresubmit\nChange-Id: Id60d4688f8f157ae15a40b0aa3585df9d0b63d07\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7906801\nReviewed-by: Yu-An Wang \u003cwyuang@google.com\u003e\nCommit-Queue: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Denny Huang \u003cdennyh@google.com\u003e\nAuto-Submit: Denny Huang \u003cdennyh@google.com\u003e\n"
    },
    {
      "commit": "72c823a6ebf8609c3dd1aa821088b7d257924049",
      "tree": "b67452443c02f2bb4ff9c0ffa98bbda40ab330cc",
      "parents": [
        "4c04e944c7993691098c6e185164449293a7943c"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Wed Jun 03 14:41:44 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Jun 04 03:06:12 2026"
      },
      "message": "setup: Publish cros_docker image version 20260603224040.\n\nA new release of cros_docker image on 20260603224040,\nbuilt from source using hash 4c04e944c7993691098c6e185164449293a7943c.\nPublished as factory-server-20260603224040-4c04e9-docker-27.5.0.txz.\n\nMajor changes:\n4c04e944c umpire/server/grpc: Implement new gRPC method `UploadFile`\n2ef1beaa3 umpire/server/grpc: Reimplement report index allocation\n2615f8612 dome: Fix Umpire gRPC max_workers schema validation error\nd0084a380 umpire: Make gRPC server max_workers configurable\n47488f9c2 fastboot: flash optional partitions\n5f466c195 umpire/server/gprc: Fix error getting request ID for debugging\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: Ie1e74982e5a0a1fa8c90cbb80cc5150006d6b6a5\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7899037\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "4c04e944c7993691098c6e185164449293a7943c",
      "tree": "9a984fffd5a133637cfb26865386d1e58c562b40",
      "parents": [
        "2ef1beaa31822cde1a1330e3ce68d2b28f813a84"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu May 28 07:44:18 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jun 03 10:10:29 2026"
      },
      "message": "umpire/server/grpc: Implement new gRPC method `UploadFile`\n\nFactory reports were saved as zst files; now zip files. CSR data were\nsaved as zst files; now plain text files.\n\nThis change aims to speed up factory reports upload speed. We could not\nuse the ZST library on the factory app side, so we let the clients\n(DUTs) upload plain text reports of large size and do ZST compression on\nthe server side, which was slow. Now perform zip compression on the\nclient side and directly upload binary zip file of smaller size.\n\nThe report index was appended at the end in the report file. Let it be a\nstandalone file in the zipped report.\n\nBUG\u003db:514279711, b:516589732\nTEST\u003dSee cl/921044599\nTEST\u003dSee cl/922655200\nTEST\u003dUse `ghz` CLI to upload 50 small zipped fake reports concurrently\n     and verify the server UUID and report indexes\n\nChange-Id: I306651c8254902683481a0a65edf513292d5f288\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7866733\nReviewed-by: Chung-sheng Wu \u003cchungsheng@google.com\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "2ef1beaa31822cde1a1330e3ce68d2b28f813a84",
      "tree": "f43748d39ebc9d98e20748dfd83b6b809e4cd108",
      "parents": [
        "2615f861295e94ebc38c67c941a427cad9c7c049"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu May 28 07:37:30 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jun 03 10:10:25 2026"
      },
      "message": "umpire/server/grpc: Reimplement report index allocation\n\nDon\u0027t use a lock. It causes the gRPC server hangs.\n\nRedesign the report index allocation. The server UUID now is a unique ID\nconcatenating a worker thread ID. Everything is done in the memory.\n\nBUG\u003db:514279711, b:516589732\nTEST\u003dSee next CL\nTEST\u003d./bin/factory_env\n     python py/umpire/server/grpc/report_index_unittest.py\n\nChange-Id: I3fbe35eb95c810dc08de15879dafc17ee8e191cd\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7884819\nCommit-Queue: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "2615f861295e94ebc38c67c941a427cad9c7c049",
      "tree": "a53adce3ba6311c6444ea657e70598646538eac1",
      "parents": [
        "d0084a3804ceae9a6bed062e280b9567eab0ae41"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Wed Jun 03 06:09:07 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jun 03 08:26:29 2026"
      },
      "message": "dome: Fix Umpire gRPC max_workers schema validation error\n\nWhen the `max_workers` field is left empty in the Dome UI, it is\nsubmitted as `null`. This caused a SchemaInvalidException during\ndeployment since the schema expected an integer.\n\nTo fix this:\n1. Update `umpire_grpc_config.schema.json` to allow `null` for\n   `max_workers` by defining its type as `[\"integer\", \"null\"]`.\n2. Update the frontend `RenderFields` component to support nullable\n   simple types (like `[\"integer\", \"null\"]`) by resolving the type to\n   the single non-null type in the list.\n\nBUG\u003dNone\nTEST\u003dmake test\n\nChange-Id: I0e1a9fb0d4747b8c6d25563f74c906442a936c0a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7894983\nCommit-Queue: chromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "d0084a3804ceae9a6bed062e280b9567eab0ae41",
      "tree": "ab5e58e7107f6b0e7f26012af3bef5aae64dff36",
      "parents": [
        "47488f9c212e7184b2edb46d0cc0dd71c3b3506c"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Mon Jun 01 07:41:13 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jun 01 09:51:22 2026"
      },
      "message": "umpire: Make gRPC server max_workers configurable\n\nThis change allows customizing the number of workers for the gRPC server\nvia the Umpire configuration.\n- Added `max_workers` to `umpire_grpc_config.schema.json` with a default\n  of 2 and a minimum of 1.\n- Updated `umpire_grpc.py` to read `max_workers` from the config and\n  pass it as an argument to the server script.\n- Modified `run_grpc_server.py` to accept the `--max-workers` argument\n  and use it when initializing the `ThreadPoolExecutor`.\n\nBUG\u003dNone\nTEST\u003dmake test\n\nChange-Id: Ica32940db6051f31cd7a61db87d8cb6a2f32506e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7885559\nCommit-Queue: chromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "47488f9c212e7184b2edb46d0cc0dd71c3b3506c",
      "tree": "36370dee2dc48d0465cc390eb75005f68ba8b54a",
      "parents": [
        "5f466c195b74f1956872be29230a85d2ba9c2903"
      ],
      "author": {
        "name": "Shuaishuai Xie",
        "email": "shuaishuai.xie@luxshare.corp-partner.google.com",
        "time": "Fri May 22 09:46:23 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat May 30 13:12:23 2026"
      },
      "message": "fastboot: flash optional partitions\n\nBluetooth, dsp , modem, persist are required partitions for some platform.\nFlash them if they exist in the image.\n\nBUG\u003db:512628687\n\nChange-Id: I69370b34c33ca9c2d4c12339d3104549e80b389e\nSigned-off-by: Shuaishuai Xie \u003cshuaishuai.xie@luxshare.corp-partner.google.com\u003e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7868336\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Andrew Liu \u003candrew.l@luxshare.corp-partner.google.com\u003e\n"
    },
    {
      "commit": "5f466c195b74f1956872be29230a85d2ba9c2903",
      "tree": "ed43adf7bfcf069e31fdfa16c0e42387794d2d74",
      "parents": [
        "0f8a7eb036e1e741eb2c344219dbf09fa4ae7bbd"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu May 28 08:39:52 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat May 30 06:14:47 2026"
      },
      "message": "umpire/server/gprc: Fix error getting request ID for debugging\n\nUploading CSR data fails because we did not well handle the debugging\nrequest ID.\n\nBUG\u003db:514279711, b:516589732\nTEST\u003dManually upload some CSR data\n\nChange-Id: If96b85db30707f688061e8cab743409ab639fe11\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7884818\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "0f8a7eb036e1e741eb2c344219dbf09fa4ae7bbd",
      "tree": "486b43bf8bd6ecc0865eccb8b8bfc5b03bbc9604",
      "parents": [
        "1d5e9f08a54045be6805c4ff4793306b6019781f"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Fri May 22 09:06:09 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 10:56:13 2026"
      },
      "message": "setup: Publish cros_docker image version 20260522170447.\n\nA new release of cros_docker image on 20260522170447,\nbuilt from source using hash 1d5e9f08a54045be6805c4ff4793306b6019781f.\nPublished as factory-server-20260522170447-1d5e9f-docker-27.5.0.txz.\n\nMajor changes:\n1d5e9f08a umpire: Add more logs when uploading factory reports\n87192464a umpire_dut_commands_servicer.py: Support uploading CSR data\nd2b8f8aac fastboot: flash optional partitions\n89b102753 run_grpc_server: Log at DEBUG level by default\n47a0af597 Revert \"fastboot: Add a config option to flash image only in FW fastboot\"\nb57f9bddc setup: Fix gcloud storage migration command\n08326bea7 setup: Migrate gsutil usage to gcloud storage\n5e74cadd2 umpire: Add API to get the manifest of factory drive\n324260ea9 dome: use dict to store files and dirs of factory drive\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I184367e8987189d7737db7fa6ff07cda53caad60\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7868334\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "1d5e9f08a54045be6805c4ff4793306b6019781f",
      "tree": "7de085320d39d802f6c4949af34f98248d4d08cf",
      "parents": [
        "87192464a5535ece125f78fc7bbcbaf67b99a464"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Wed May 20 03:46:21 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 08:56:24 2026"
      },
      "message": "umpire: Add more logs when uploading factory reports\n\nAdd more logs to help debugging.\n\nFix the noisy logs when a thread is waiting to hold the report index\nfile lock. Increase the interval from 0.1s to 2s.\n\nBUG\u003db:514279711\nTEST\u003dRun the factory server, send some concurrent requests, and view\n     the factory server gRPC service logs\n\nChange-Id: I23cd71e6edcea5770d2ce26410ebded3a21f1eff\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7862980\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "87192464a5535ece125f78fc7bbcbaf67b99a464",
      "tree": "727cb17817854cab79c4f216e9f15aea01483547",
      "parents": [
        "d2b8f8aacf2727879522137b286d31fda660eb24"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Wed Mar 18 21:24:05 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 07:03:04 2026"
      },
      "message": "umpire_dut_commands_servicer.py: Support uploading CSR data\n\nSupport uploading CSR data to the factory server.\n\nBUG\u003db:490603304\nTEST\u003dRun \"sync factory server\" test on a DUT to receive CSR data, verify\n     it is saved under /cros_docker/umpire/PROJECT/umpire_Data/csr\n\nChange-Id: I9722c6b47533bc4e720699fef09876b64c052d8e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7682932\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "d2b8f8aacf2727879522137b286d31fda660eb24",
      "tree": "2f027343ca09342f220382219248e0a9da63cd09",
      "parents": [
        "89b102753f3100039319fbe73032c75c652e5d27"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon May 18 10:37:57 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 20 07:50:02 2026"
      },
      "message": "fastboot: flash optional partitions\n\nBluetooth, dsp and modem are required partitions for some platform.\nFlash them if they exist in the image.\n\nBUG\u003db:512628687\nTEST\u003d./fastboot_orchestrator \\\n        -v \\\n        -s fastboot_img_src \\\n        -i 192.168.1.0/24\n        -b ${board_name} \\\n        -p ${project_name} \\\n        --idle_timeout 300\n\nChange-Id: I0a04876324a99ca7fe8e8bb715c51172f03bc00e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7849604\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "89b102753f3100039319fbe73032c75c652e5d27",
      "tree": "fadeb4ad6cd20a88dc75713e6bb47945b3805682",
      "parents": [
        "47a0af59744301fa6a267a5d42edd8a6dd15d48a"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Tue May 19 10:59:31 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 20 05:38:29 2026"
      },
      "message": "run_grpc_server: Log at DEBUG level by default\n\nIt\u0027s hard to debug when the default level is INFO. Also, umpired logs at\nDEBUG by default so let\u0027s align with it.\n\nBUG\u003db:514279711\nTEST\u003dNone\n\nChange-Id: I57bd19b8a2e4833f44fe98e452e93ec351af595c\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7859154\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "47a0af59744301fa6a267a5d42edd8a6dd15d48a",
      "tree": "eddb9a556835fc6471f9573f4854bb5108b18aa2",
      "parents": [
        "b57f9bddcee8afaaa935d1550bf0322edc6871d5"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon May 18 10:44:48 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 03:30:41 2026"
      },
      "message": "Revert \"fastboot: Add a config option to flash image only in FW fastboot\"\n\nThis reverts commit 8e5e25f877f6023afce7f6dc4d9e6d4c0748c033.\n\nReason for revert: Since we hardcode the fastboot-info.txt, if there are partitions that is not included in it, than it won\u0027t be flashed with flashall. We will let user to upload their own fastboot-info.txt in the future and reland this feature.\n\nOriginal change\u0027s description:\n\u003e fastboot: Add a config option to flash image only in FW fastboot\n\u003e\n\u003e Introduce a config flag for fastboot service to allow image flashing\n\u003e exclusively in FW fastboot.\n\u003e\n\u003e BUG\u003db:501049163\n\u003e TEST\u003d(1) ./fastboot_orchestrator \\\n\u003e           -v \\\n\u003e           -s fastboot_img_src \\\n\u003e           -i 192.168.1.0/24\n\u003e           -b ${board_name} \\\n\u003e           -p ${project_name} \\\n\u003e           --idle_timeout 300 \\\n\u003e           --fw_fastboot_only\n\u003e      (2) verify that DUT is flashed only in FW fastboot\n\u003e\n\u003e Change-Id: Ic4264514bece622ef0466f4c9509ac8e47d765e4\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7744324\n\u003e Commit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n\u003e Auto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\n\u003e Reviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n\u003e Tested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n\nBUG\u003db:501049163\n\nChange-Id: I032838b5f1b702f5f4ee7c9ba0b3dcef9ecb96ac\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7849605\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "b57f9bddcee8afaaa935d1550bf0322edc6871d5",
      "tree": "8fd29ede670b895c84a44a29bfc8fe0e295b1008",
      "parents": [
        "08326bea7f0645882b3570e4c539eddc7b499d9f"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Mon May 11 09:45:37 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 12 01:58:54 2026"
      },
      "message": "setup: Fix gcloud storage migration command\n\nThe previous CL used an incorrect command during the transition from\ngsutil to gcloud storage. This change updates the setup script with\nthe correct command.\n\nBUG\u003db:511027371\nTEST\u003dmake test\n\nChange-Id: I8ff621219a8cbdd11993508676118bf75594e83b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7832647\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "08326bea7f0645882b3570e4c539eddc7b499d9f",
      "tree": "f71cafe0f686d5ab678769bfc0b0335dc5df98f6",
      "parents": [
        "3fcc25b84ce09c259a3c736e0dc5d1d3841e565d"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Fri May 08 07:20:08 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 11 03:49:16 2026"
      },
      "message": "setup: Migrate gsutil usage to gcloud storage\n\nSince gsutil has been deprecated and does not support newer security\ncontrols. We needs to migrate `gsutil` usage to `gcloud storage`.\n\nBUG\u003db:511027371\nTEST\u003dmake test\n\nChange-Id: Ifc9adf87a78bd2f68940cc2f6c8e9c77f261e2f1\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7832105\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "3fcc25b84ce09c259a3c736e0dc5d1d3841e565d",
      "tree": "e53a558e96ff7e2700c9e0c548ad3bcaede1cfbc",
      "parents": [
        "5e74cadd2e7018091aa1b9dbacdca8180771ef6a"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu May 07 07:24:48 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 07 09:35:44 2026"
      },
      "message": "setup: Publish cros_docker image version 20260507072331.\n\nA new release of cros_docker image on 20260507072331,\nbuilt from source using hash 56eebe17fb1d1a566da9853e934ffe53fa045319.\nPublished as factory-server-20260507072331-56eebe-docker-27.5.0.txz.\n\nMajor changes:\n56eebe17f umpire: Fix some lint errors\n82a309bc6 dome: Fix some lint errors\nc72713bf4 dome: Add DeleteFactoryDrive feature\n8ec83bd67 Increase client_max_body_size in Nginx configs.\nb4eed51cc dome: Change UI for downloading CSR\n8e5e25f87 fastboot: Add a config option to flash image only in FW fastboot\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I2e87902dab456d338374f4e5afbadd9d85ee0dd0\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7826211\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: chromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5e74cadd2e7018091aa1b9dbacdca8180771ef6a",
      "tree": "1ad27618255c9ab0ee98efc21beecf6e0242ec21",
      "parents": [
        "324260ea97e299c697a5b51dfef24a53ec3dac66"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Tue Apr 28 07:39:36 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 07 09:15:33 2026"
      },
      "message": "umpire: Add API to get the manifest of factory drive\n\nAdd grpc API for DUT to get the manifest of factory drive, which\nincludes the md5sum and path of each file.\n\nBUG\u003db:507293024\nTEST\u003d(1) cros_docker.sh build \u0026\u0026 cros_docker.sh run\n     (2) start umpire and its umpireGrpc service\n     (3) grpcurl \\\n        -emit-defaults \\\n        -plaintext \\\n        -import-path / \\\n        -proto ./py/umpire/server/proto/umpire_dut_commands.proto \\\n         192.168.1.190:8089 \\\n         com.google.android.factory.factory.proto.umpire.UmpireDUTCommands/GetFactoryDriveManifest\n\nChange-Id: I0731e39e3fdab55447f121c73b1e9fcdb681f4d0\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7790442\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "324260ea97e299c697a5b51dfef24a53ec3dac66",
      "tree": "52e96355097ada6e45269fff06d3b7eb3063f764",
      "parents": [
        "56eebe17fb1d1a566da9853e934ffe53fa045319"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Apr 16 06:45:46 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 07 09:15:30 2026"
      },
      "message": "dome: use dict to store files and dirs of factory drive\n\nUse dict to store files and dirs of factory drive in memory to improve\nthe search efficiency.\n\nBUG\u003db:507293024\nTEST\u003d1) create project and start umpire\n     2) go to factory drive page\n     3) ensure adding files, adding dirs, delete files work normally\n\nChange-Id: Ic355696bb2ad617586bb196d53f73a72b59e9ad0\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7790441\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "56eebe17fb1d1a566da9853e934ffe53fa045319",
      "tree": "ecd241f7595fa82028cf36b309539760c4247399",
      "parents": [
        "82a309bc6e60c344692526179d6029ba9ae72f02"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Apr 30 03:28:21 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 04 13:50:13 2026"
      },
      "message": "umpire: Fix some lint errors\n\nFix some lint errors.\n\nBUG\u003dNone\nTEST\u003dmake test\n\nChange-Id: I4684348175e5283e5a9fb9fe7c2a2b9443b4d6bd\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7805728\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "82a309bc6e60c344692526179d6029ba9ae72f02",
      "tree": "cc403dd41b48af25fed4048dd36ec0f9903f0645",
      "parents": [
        "e87ec09abda321d70246169bddc2e18590765241"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Apr 30 03:27:46 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 04 08:27:12 2026"
      },
      "message": "dome: Fix some lint errors\n\nFix some lint errors.\n\nBUG\u003dNone\nTEST\u003dmake test\n\nChange-Id: Icfdc71e6edae0738c9a56c416d00c143ec90226e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7805727\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "e87ec09abda321d70246169bddc2e18590765241",
      "tree": "b00d3050ebb61fa6e89c99629e517df3fb47ce1e",
      "parents": [
        "c72713bf47c277f9fc4057fe072d29c0b0c08ed5"
      ],
      "author": {
        "name": "Tzu-Min Sun",
        "email": "jimmysun@chromium.org",
        "time": "Mon May 04 04:05:05 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 04 06:29:21 2026"
      },
      "message": "Revert \"gsc_utils: provision spi drive\"\n\nThis reverts commit 97e6595c24e39c292e8f647d2af4bbcb5fadd76f.\n\nReason for revert:\n\nReverting to restore original spi_drive defaults. The change was premature as hardware qualifications and partner discussions are still ongoing. This prevents upcoming builds from locking in unapproved settings as they exit Initial Factory Mode. Resolves b/508686259\n\nOriginal change\u0027s description:\n\u003e gsc_utils: provision spi drive\n\u003e\n\u003e Provision 3 when NT, else provision 0.\n\u003e\n\u003e BUG\u003db:437050876\n\u003e TEST\u003dmake test\n\u003e\n\u003e Change-Id: I9885a6a4e5e00ac66409c96d185c485d9ba58690\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7692494\n\u003e Reviewed-by: Jimmy Sun \u003cjimmysun@chromium.org\u003e\n\u003e Commit-Queue: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\n\u003e Auto-Submit: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\n\u003e Tested-by: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\n\nBUG\u003db:437050876, b:508686259, b:507834240\n\nChange-Id: I6ccfb62c8951faf5beed20a2a93121a15c502e62\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7813075\nAuto-Submit: Tzu-Min Sun \u003cjimmysun@chromium.org\u003e\nReviewed-by: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\nTested-by: Tzu-Min Sun \u003cjimmysun@chromium.org\u003e\nCommit-Queue: Tzu-Min Sun \u003cjimmysun@chromium.org\u003e\n"
    },
    {
      "commit": "c72713bf47c277f9fc4057fe072d29c0b0c08ed5",
      "tree": "4991e7b7e014df56af28041e563224bf45a46e26",
      "parents": [
        "d281fdef8a4df3ad6c25de221f3680ef951479d9"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Apr 30 03:26:41 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 04 06:13:05 2026"
      },
      "message": "dome: Add DeleteFactoryDrive feature\n\nAdd DeleteFactoryDrive feature.\n\nBUG\u003db:507293024\nTEST\u003dmake test\n\nChange-Id: I42a01ffd244e5af437893d657c92abc6ca7a39d9\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7749265\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "d281fdef8a4df3ad6c25de221f3680ef951479d9",
      "tree": "aa82504981e18c935f7485be5e7c90947c55b877",
      "parents": [
        "4497f93093114e0050f936061e43b447cd1ab154"
      ],
      "author": {
        "name": "Denny Huang",
        "email": "dennyh@google.com",
        "time": "Thu Apr 30 10:39:16 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 30 13:49:40 2026"
      },
      "message": "bundle_creator: uprev toolkit version to 16663.0.0\n\nUprev toolkit version to 16663.0.0 to include CL:7802134.\n\nBUG\u003db:441842121\nTEST\u003dmake test\nTEST\u003dw/o local toolkit, deploy to dev2, test with different versions\n\nChange-Id: I76356885c2cf39a4c4ad52f06c2da3b477dd67b9\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7806407\nTested-by: Denny Huang \u003cdennyh@google.com\u003e\nReviewed-by: Yu-An Wang \u003cwyuang@google.com\u003e\nCommit-Queue: Denny Huang \u003cdennyh@google.com\u003e\nAuto-Submit: Denny Huang \u003cdennyh@google.com\u003e\nCommit-Queue: Yu-An Wang \u003cwyuang@google.com\u003e\n"
    },
    {
      "commit": "4497f93093114e0050f936061e43b447cd1ab154",
      "tree": "8dd393d438fef0073f3db3ebc62d1d477c51891b",
      "parents": [
        "8ec83bd6764192155cde18f363da41bcfba18d4c"
      ],
      "author": {
        "name": "Denny Huang",
        "email": "dennyh@google.com",
        "time": "Tue Apr 28 14:14:15 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 29 02:29:07 2026"
      },
      "message": "finalize_bundle: Add a temporary workaround for nissa2\n\nLet gsutil to temporarily use nissa images for nissa2 in older versions.\n\nAlso replace `gsutil cp` with gcloud commands as recommended.\n\nBUG\u003db:504509369, b:441842121\nTEST\u003dmake test\nTEST\u003dDeploy to dev2 and test with different versions\n\nChange-Id: I35af258f2ba4fd1ab3bd765caa9a81477c78fa63\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7802134\nAuto-Submit: Denny Huang \u003cdennyh@google.com\u003e\nCommit-Queue: Yu-An Wang \u003cwyuang@google.com\u003e\nTested-by: Denny Huang \u003cdennyh@google.com\u003e\nReviewed-by: Yu-An Wang \u003cwyuang@google.com\u003e\n"
    },
    {
      "commit": "8ec83bd6764192155cde18f363da41bcfba18d4c",
      "tree": "24189ddafbc9b0597abd1de48e00a1efcc3f6223",
      "parents": [
        "b4eed51ccf003fbbbd0f00f4d864cb039da4a09f"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Tue Apr 28 06:49:36 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 28 10:25:24 2026"
      },
      "message": "Increase client_max_body_size in Nginx configs.\n\nThe maximum allowed size for client request bodies is increased from\n20GB to 32GB in both production and development nginx configurations.\n\nBUG\u003db:507256001\nTEST\u003d(1) cros_docker.sh build \u0026\u0026 cros_docker.sh run\n     (2) upload image with new layout as payload for Umpire\nChange-Id: I12e6a48eabd2c6bc7de30ba79d28bd19279d52a4\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7798723\nCommit-Queue: chromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Tzu-Min Sun \u003cjimmysun@chromium.org\u003e\n"
    },
    {
      "commit": "b4eed51ccf003fbbbd0f00f4d864cb039da4a09f",
      "tree": "8b84e489ee0f26404592063a9e217eac67a8dbdd",
      "parents": [
        "fce62cc02f2381b9b18bf582a02d88748fe5e3b0"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Apr 23 09:08:57 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Apr 27 05:04:48 2026"
      },
      "message": "dome: Change UI for downloading CSR\n\nThis CL add a new tab called \"CSR\" for Logs page.\n\nBUG\u003db:490601616\nTEST\u003dmake test\nTEST\u003d(1) Build and run the dome server with this CL\n     (2) Verify the \"CSR\" tab is shown on the Logs page\n\nChange-Id: Id74c84d1fa8d23dc20b8927b33f0ae75af67a3ef\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7789850\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "fce62cc02f2381b9b18bf582a02d88748fe5e3b0",
      "tree": "ae93ea06ac4789f9d2786f2d5d99ebd5b1f18eb3",
      "parents": [
        "45bb0c7415279ca986b5b148e91f610db8085b7b"
      ],
      "author": {
        "name": "Tony Chang",
        "email": "tonytcc@google.com",
        "time": "Fri Apr 17 07:34:30 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 23 03:11:28 2026"
      },
      "message": "edp_panel_timing: check debug file by realpath\n\nSome platforms have multiple debug files that actually\npoint to the same path. Checking the debug file using\nrealpath to prevent this issue.\n\nBUG\u003db:502374825\nTEST\u003dload test list on DUT\n\nChange-Id: Ibf494a3fde972df94e326837452d47676ac9ebb8\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7771270\nTested-by: Tony Chang \u003ctonytcc@google.com\u003e\nReviewed-by: Tzu-Min Sun \u003cjimmysun@chromium.org\u003e\nCommit-Queue: Tony Chang \u003ctonytcc@google.com\u003e\n"
    },
    {
      "commit": "45bb0c7415279ca986b5b148e91f610db8085b7b",
      "tree": "89a5a84fc5e304b2cede44fe74913eacdf6213d1",
      "parents": [
        "8e5e25f877f6023afce7f6dc4d9e6d4c0748c033"
      ],
      "author": {
        "name": "Olga Meleshko",
        "email": "meleshko@google.com",
        "time": "Wed Apr 15 08:40:18 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 15 11:18:53 2026"
      },
      "message": "hwid_extractor: Add location select to hwid extractor view.\n\nAdd location select to hwid extractor view.\n\nBug \u003d b:388308410\nTEST\u003dBuild the image and run the HWID extractor\n\nChange-Id: I395b66dee9eecf2e868ec1f843dff6bf77ab0e11\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7734963\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Olga Meleshko \u003cmeleshko@google.com\u003e\nCommit-Queue: Olga Meleshko \u003cmeleshko@google.com\u003e\n"
    },
    {
      "commit": "8e5e25f877f6023afce7f6dc4d9e6d4c0748c033",
      "tree": "0b35cdf6a755db404038f98bd8074e4beb917713",
      "parents": [
        "6a9e491012a16f36d527aa3826f2b171ac2048f7"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Apr 09 14:54:50 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 14 03:48:12 2026"
      },
      "message": "fastboot: Add a config option to flash image only in FW fastboot\n\nIntroduce a config flag for fastboot service to allow image flashing\nexclusively in FW fastboot.\n\nBUG\u003db:501049163\nTEST\u003d(1) ./fastboot_orchestrator \\\n          -v \\\n          -s fastboot_img_src \\\n          -i 192.168.1.0/24\n          -b ${board_name} \\\n          -p ${project_name} \\\n          --idle_timeout 300 \\\n          --fw_fastboot_only\n     (2) verify that DUT is flashed only in FW fastboot\n\nChange-Id: Ic4264514bece622ef0466f4c9509ac8e47d765e4\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7744324\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "6a9e491012a16f36d527aa3826f2b171ac2048f7",
      "tree": "0b34ee871756ba71b6737ff19c0749d0cc9978c1",
      "parents": [
        "f64c6c7801d6e3fe0254985fa3b838c2351ec30e"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Tue Apr 07 12:30:14 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 08 03:29:02 2026"
      },
      "message": "setup: Publish cros_docker image version 20260407202901.\n\nA new release of cros_docker image on 20260407202901,\nbuilt from source using hash f64c6c7801d6e3fe0254985fa3b838c2351ec30e.\nPublished as factory-server-20260407202901-f64c6c-docker-27.5.0.txz.\n\nMajor changes:\n9e4c51959 dome: Increase the maximum size of the uploaded files\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: Iff1f79427b18e6b187c5d4bcfec0996460b8ab56\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7734483\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Knox Chiou \u003cknoxchiou@chromium.org\u003e\nTested-by: Wentao Qin \u003cqinwentao@huaqin.corp-partner.google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "f64c6c7801d6e3fe0254985fa3b838c2351ec30e",
      "tree": "ded3701a8efddc34a3567a863c075217ba810cf3",
      "parents": [
        "9e4c51959bcf31f082e9217ed435affc78658a50"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Tue Apr 07 06:44:34 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 07 09:34:35 2026"
      },
      "message": "fastboot: correct the target broadcast IP address\n\nThe target broadcast IP address should be got from grpc request, instead\nof always using 255.255.255.255.\n\nBUG\u003db:493100615\nTEST\u003d(1) ./fastboot_orchestrator \\\n      -v \\\n      -s fastboot_img_src \\\n      -i ${network_interface_name} 192.168.2.255 \\\n      -b ${board_name} \\\n      -p ${project_name} \\\n      --idle_timeout 300\n     (2) verify that DUT with ip address `192.168.1.xxx` doesn\u0027t be\n         pinged\n\nChange-Id: Icc88ce9dcb5b16e5348908918b8faa47d1753b1e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7732742\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "9e4c51959bcf31f082e9217ed435affc78658a50",
      "tree": "44011c4c217f8f9e316e10f4f1eb275f29a38b46",
      "parents": [
        "610bdba0c80d1806671c12fa03706030d8584706"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Tue Apr 07 06:34:11 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 07 08:46:23 2026"
      },
      "message": "dome: Increase the maximum size of the uploaded files\n\nThe new disk layout enlarges the image to 18G.\nWe need to increase the maximum file size of the uploaded\nfiles.\n\nBUG\u003db:500220052\nTEST\u003d(1) cros_docker.sh build \u0026\u0026 cros_docker.sh run\n     (2) upload image with new layout as payload for Umpire\n\nChange-Id: Icbdb1630889acf69f23e8630c591292cc07b2a2f\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7734161\nCommit-Queue: ChromeOS Auto Runner \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "610bdba0c80d1806671c12fa03706030d8584706",
      "tree": "e3245c64fa04ec46e97b9007a2b2c9dd6692bdaa",
      "parents": [
        "0826d99b1c9bae8c2ad8d0bf7021082f2df807dc"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Apr 06 15:20:31 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 07 02:22:54 2026"
      },
      "message": "setup: Publish cros_docker image version 20260406231912.\n\nA new release of cros_docker image on 20260406231912,\nbuilt from source using hash 0826d99b1c9bae8c2ad8d0bf7021082f2df807dc.\nPublished as factory-server-20260406231912-0826d9-docker-27.5.0.txz.\n\nMajor changes:\n0826d99b1 dome: Add a test for LogForm\nb69795c37 dome: Add a test for ProjectsApp\n\nImportant changes:\n- crrev/c/7727909: Start with a default configuration for provision-file in factory_ufs\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: Ic21eee7d610d0c9fed720fb69c9e740d8ee0af03\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7725610\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "0826d99b1c9bae8c2ad8d0bf7021082f2df807dc",
      "tree": "cf435922ef2d5e45c072e5f6689a929c0ecdcc33",
      "parents": [
        "97e6595c24e39c292e8f647d2af4bbcb5fadd76f"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Jan 08 06:28:05 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Mar 24 01:19:50 2026"
      },
      "message": "dome: Add a test for LogForm\n\nAdd a new unit test for LogForm.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I17d49e1c00696953b9aa9523cae49277c48c24ed\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7656147\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: ChromeOS Auto Retry \u003cchromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "97e6595c24e39c292e8f647d2af4bbcb5fadd76f",
      "tree": "cf243b25ec772fb2cf1c5dd8d7640db8e1a1d8f7",
      "parents": [
        "b69795c37d0e58c9a0b6c395d1c8c381552f8bc9"
      ],
      "author": {
        "name": "Chih-Yao Chuang",
        "email": "jasonchuang@google.com",
        "time": "Fri Mar 13 07:08:28 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Mar 23 07:42:25 2026"
      },
      "message": "gsc_utils: provision spi drive\n\nProvision 3 when NT, else provision 0.\n\nBUG\u003db:437050876\nTEST\u003dmake test\n\nChange-Id: I9885a6a4e5e00ac66409c96d185c485d9ba58690\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7692494\nReviewed-by: Jimmy Sun \u003cjimmysun@chromium.org\u003e\nCommit-Queue: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\nAuto-Submit: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\nTested-by: Chih-Yao Chuang \u003cjasonchuang@google.com\u003e\n"
    },
    {
      "commit": "b69795c37d0e58c9a0b6c395d1c8c381552f8bc9",
      "tree": "7f01aaa20e2f21ff2e177d2db0351236d834e724",
      "parents": [
        "73c76a397da641755a9188228384fb0b5b856ce6"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Dec 16 06:51:08 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Mar 23 06:30:22 2026"
      },
      "message": "dome: Add a test for ProjectsApp\n\nAdd a new unit test for ProjectsApp.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I43b494a3752a9aa3479b4e51a165923c8806a46e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7261660\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "73c76a397da641755a9188228384fb0b5b856ce6",
      "tree": "d96f8e978d7cc7f11b6dbc31e36c4456f53cd0dd",
      "parents": [
        "36aaab6952b5e0017cdb5051ecf026f9433a64bd"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Fri Mar 20 10:34:58 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 20 12:33:59 2026"
      },
      "message": "setup: Publish cros_docker image version 20260320183402.\n\nA new release of cros_docker image on 20260320183402,\nbuilt from source using hash 36aaab6952b5e0017cdb5051ecf026f9433a64bd.\nPublished as factory-server-20260320183402-36aaab-docker-27.5.0.txz.\n\nMajor changes:\n36aaab695 umpire_dut_commands_servicer.py: Refactor file upload function\nf8d38e0a1 dome: Add a test for RenderFields\n608bc131b umpire: Sync umpire_dut_commands.proto with google3\n2430f98aa dome: Prevent some console error with render_fields.tsx file\n25dd4c942 dome: Add a test for ReduxFormDateField\nc6818fe14 fastboot: use broadcast ping to discover DUT\n221992b5a fastboot: add the broadcast ping server\ne06bac425 dome: Add a test for ReduxFormTabsField\n75df9ddf5 umpire_dut_commands_servicer.py: Format code\nfffd5e093 dome: add nullable object in service component\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I339e19a64e527e9e096d5ef714d2956784e5b6d8\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7687571\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "36aaab6952b5e0017cdb5051ecf026f9433a64bd",
      "tree": "08cb96e3232f2c860bb80e2985cad0aac51224d9",
      "parents": [
        "f8d38e0a1c53333cc3e8a482cbd2a4ec091936bb"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Wed Mar 18 21:17:17 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 20 09:56:41 2026"
      },
      "message": "umpire_dut_commands_servicer.py: Refactor file upload function\n\nWe will have more gRPC methods concerning file uploads. Refactor the\ncode so we can reuse repeated logic.\n\nBUG\u003db:490603304\nTEST\u003dRun \"sync factory server\" test on a DUT to receive a factory report\n\nChange-Id: Ic586310d911089a51212317a0598e3c99cb27b7b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7682931\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "f8d38e0a1c53333cc3e8a482cbd2a4ec091936bb",
      "tree": "d91771d6d25db3e0e66d0e96175dfcdf7c059a09",
      "parents": [
        "608bc131b1ca8ae5a8d5f64f59b86546ec3cb469"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Dec 16 06:38:56 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 20 08:11:17 2026"
      },
      "message": "dome: Add a test for RenderFields\n\nAdd a new unit test for RenderFields.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I346add9df45580f66122ae435dfacc56735bca1e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7261659\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "608bc131b1ca8ae5a8d5f64f59b86546ec3cb469",
      "tree": "6d283815246e9d73c31ed9f816a7af73cc7d18ef",
      "parents": [
        "2430f98aaa85dd4f723852ac90e341478d06a21b"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Wed Mar 11 16:22:46 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 20 08:01:19 2026"
      },
      "message": "umpire: Sync umpire_dut_commands.proto with google3\n\nSync umpire_dut_commands.proto with google3 and update its usages.\n\nBUG\u003db:490603304\nTEST\u003dRun \"sync factory server\" test on a DUT to receive a factory report\n\nChange-Id: I655715f9c0609a6d79f3d5d0441916b5e6e9a5fb\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7682930\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "2430f98aaa85dd4f723852ac90e341478d06a21b",
      "tree": "b949d6dc1e22832b566bd60d49907db4d0e00dfe",
      "parents": [
        "25dd4c94267867a6bf919b6ce3fe8127161fc42b"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Dec 16 06:20:17 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 20 05:22:45 2026"
      },
      "message": "dome: Prevent some console error with render_fields.tsx file\n\nMake some changes to avoid these error messages:\n```\nconsole.error\n  Warning: Failed prop type: Invalid prop `checked` of type `string`\n  supplied to `ForwardRef(Switch)`, expected `boolean`.\nconsole.error\n  Warning: Failed prop type: Invalid prop `checked` of type `string`\n  supplied to `ForwardRef(SwitchBase)`, expected `boolean`.\n```\n\nBUG\u003dNone\nTEST\u003dmake test\n\nChange-Id: Ie183df6ac16ce4e860cfa243cabe0f0ba6ad5e4e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7261658\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "25dd4c94267867a6bf919b6ce3fe8127161fc42b",
      "tree": "ddccd25cb0e317b19b0dd9cf59883cad59c75ac2",
      "parents": [
        "c6818fe14d24423b07170ea84389478dab9a09ee"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Dec 16 05:54:55 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 20 03:33:03 2026"
      },
      "message": "dome: Add a test for ReduxFormDateField\n\nAdd a new unit test for ReduxFormDateField.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I331dd296dd1c0f2cbb89d11e18eb82d563ff54b9\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7261657\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "c6818fe14d24423b07170ea84389478dab9a09ee",
      "tree": "0ab8a8c6dd6b8f05b975e0cfd78c705e8b40b60a",
      "parents": [
        "221992b5a0fd8180e6321439018964d420536b82"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Feb 12 16:07:43 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Mar 19 11:08:00 2026"
      },
      "message": "fastboot: use broadcast ping to discover DUT\n\nThe FW fastboot supports respond to ECHO ICMP messages sent to broadcast\naddress. This CL changes to utilize broadcast ping to discover the DUTs\nthat are undergoing image flashing.\n\nBUG\u003db:469807721, b:493100615\nTEST\u003d1) ./fastboot_orchestrator \\\n      -v \\\n      -s fastboot_img_src \\\n      -i ${network_interface_name} ${broadcast_ip} \\\n      -b ${board_name} \\\n      -p ${project_name} \\\n      --idle_timeout 300\nTEST\u003d2) Use DOME UI to trigger the fastboot service\n\nChange-Id: I693b57224fd3e58b5e1e6aaa91698d21964af0b9\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7572422\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "221992b5a0fd8180e6321439018964d420536b82",
      "tree": "ba0e4f0a78e2ad260d3845c68d6734a2d3784811",
      "parents": [
        "e06bac4252fda14ff93cacd5e1d32af938a3d1ba"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Mar 16 07:47:21 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Mar 19 11:07:57 2026"
      },
      "message": "fastboot: add the broadcast ping server\n\nThis CL add a broadcast ping server, which is a grpc server that send\nthe ICMP broadcast ping packages according to the request and respond\nwith the IP addresses that echo the packages. The service can be\nenable/disable at the DOME config page.\nWe run this service inside a docker with host network mode. The default\nurl of this service is \u0027{docker_network_gataway_ip}:8002\u0027\n\nBUG\u003db:493100615\nTEST\u003d(1) enable the broadcast ping server in DOME config page\n     (2) grpcurl \\\n           -emit-defaults \\\n           -d \u0027{\n                 \"iface\": \"enxa0cec8135b7e\",\n                 \"bcast_ip\": \"192.168.1.255\",\n                 \"ttl\": 10,\n                 \"num_probes\": 1,\n                 \"timeout\": 10,\n                 \"payload\": \"test\"\n               }\u0027 \\\n           -plaintext \\\n           -import-path / \\\n           -proto ./py/fastboot/proto/broadcast_ping.proto \\\n           192.168.9.1:8002 \\\n           cros.factory.fastboot.proto.BroadcastPing/PerformScan\n\nChange-Id: I35f20debe0879d6e3301b8d0eb95563d90c55d39\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7665540\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "e06bac4252fda14ff93cacd5e1d32af938a3d1ba",
      "tree": "2d1785317ac8d8218550a45f0c0da2f2e3f81739",
      "parents": [
        "75df9ddf5f68b39fa350829dc8a06f543224cfb8"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Dec 16 05:36:07 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Mar 19 05:22:01 2026"
      },
      "message": "dome: Add a test for ReduxFormTabsField\n\nAdd a new unit test for ReduxFormTabsField.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: Ie70be603e126760c1d9e0b8429bebbed4464782f\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7261656\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "75df9ddf5f68b39fa350829dc8a06f543224cfb8",
      "tree": "88e7fc4cc9276364b2fb151815d923c3b4700c6b",
      "parents": [
        "fffd5e093ff8c3d3a023fd1b39488d674eac433c"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Wed Mar 18 10:16:08 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Mar 19 05:15:35 2026"
      },
      "message": "umpire_dut_commands_servicer.py: Format code\n\nTo pass the pre-submit hook.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I23e25d665ca02f03b839525d61a9652298dcdee0\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7679853\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "fffd5e093ff8c3d3a023fd1b39488d674eac433c",
      "tree": "90ff45494d2e476693757fd083432b7c5ed34823",
      "parents": [
        "ddaf3bd1ddc2fd950cb740a532a48d83f43bebbc"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Mar 16 06:52:52 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Mar 17 07:38:24 2026"
      },
      "message": "dome: add nullable object in service component\n\nAdd nullable object in service component so that user can use toggle\nwith arguments. To use this feature, add a object whose type is\n`[\"object\", \"null\"]` and properties are objects.\n\nBUG\u003db:493100615\nTEST\u003d(1) add a nullable object into a service\u0027s config\n     (2) test on UI\n\nChange-Id: Iff68275cf443a16a0b44f9e9ad70eecebf2d2485\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7665539\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "ddaf3bd1ddc2fd950cb740a532a48d83f43bebbc",
      "tree": "625c7be52d7ec3bc319c0af3d091cf755b0b17d3",
      "parents": [
        "23f823e53b9f14c8124437d9cb69aa7847ed1fe3"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Fri Mar 13 11:15:55 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 13 18:33:07 2026"
      },
      "message": "setup: Publish cros_docker image version 20260313111441.\n\nA new release of cros_docker image on 20260313111441,\nbuilt from source using hash 23f823e53b9f14c8124437d9cb69aa7847ed1fe3.\nPublished as factory-server-20260313111441-23f823-docker-27.5.0.txz.\n\nMajor changes:\n23f823e53 Revert \"cros_payload: Process OTA package when adding payload\"\n01a0b3bf4 umpire: Fix file cannot be downloaded from root directory in Factory Drives\n827f7f938 dome: Prevent some console error\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: Ibb98ecce6f31d76f43bd97cdc59ee8e4262763c4\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7665223\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "23f823e53b9f14c8124437d9cb69aa7847ed1fe3",
      "tree": "1bcf9b5bdcb8b2d3e7616512f0d976fc096800e7",
      "parents": [
        "01a0b3bf415708469e254f363899e5ecc5166c48"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Fri Mar 13 07:54:39 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 13 10:38:23 2026"
      },
      "message": "Revert \"cros_payload: Process OTA package when adding payload\"\n\nThis reverts commit 34b87b173e014c45ff9e6644ae639a19647c9a6f.\n\nReason for revert: change to process the OTA package on device\n\nOriginal change\u0027s description:\n\u003e cros_payload: Process OTA package when adding payload\n\u003e\n\u003e In our OTA use case in factory, the key that signs OTA package may\n\u003e mismatch with the one used for verification on device. To force to apply\n\u003e OTA package, we need to override the key on device. This CL add\n\u003e preprocessing for the packages to store the key as the format on device.\n\u003e\n\u003e BUG\u003db:456596206\n\u003e TEST\u003d1) upload OTA package to DOME\n\u003e      2) download the OTA package to DUT with `Download OTA package` test\n\u003e      3) apply the OTA package on DUT with `Install OTA package` test\n\u003e\n\u003e Change-Id: I16f56ee964d033b477c91cb79e39d27557e4f7ba\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7141144\n\u003e Auto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\n\u003e Reviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n\u003e Commit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n\u003e Tested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n\nBUG\u003db:456596206\n\nChange-Id: I9f3c377c017cf57396028630d16330dc963b79cd\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7665777\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "01a0b3bf415708469e254f363899e5ecc5166c48",
      "tree": "04aa3d932fc0c28a9483a8bfb4f5ba33ce0174e8",
      "parents": [
        "827f7f938f4188138662a268fcb10f26e0bb6016"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Wed Mar 11 07:35:58 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 13 09:15:10 2026"
      },
      "message": "umpire: Fix file cannot be downloaded from root directory in Factory Drives\n\nThis CL fix a known issue in Factory Drives where setting the sourceDir\n(or source_namespace) to the root directory (\"/\") during a download\nresults in functional errors.\n\nBUG\u003db:483850409\nTEST\u003dmake test\nTEST\u003d(1) Build the dome server with this CL\n     (2) Upload a file to root directory on Factory Drives page\n     (3) Run gRPC call from the DUT that connects to the server\n     (4) Verify this file can be downloaded to the DUT\n\nChange-Id: Ie25c4f13b648a60ea210259486c8bd7e82917d68\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7656847\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "827f7f938f4188138662a268fcb10f26e0bb6016",
      "tree": "ed512abb95323dca04ab0e57579d819e6c613147",
      "parents": [
        "a6c378beaf914f998f44c244223aa65c6d302497"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Dec 16 05:44:09 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Mar 12 06:36:04 2026"
      },
      "message": "dome: Prevent some console error\n\nMake some changes to avoid these error messages:\n```\nconsole.error\n  Warning: React does not recognize the `InputLabelProps` prop on a DOM\n  element. If you intentionally want it to appear in the DOM as a\n  custom attribute, spell it as lowercase `inputlabelprops` instead. If\n  you accidentally passed it from a parent component, remove it from\n  the DOM element.\n```\nand\n```\nconsole.error\n  Warning: Each child in a list should have a unique \"key\" prop.\n```\n\nBUG\u003dNone\nTEST\u003dmake test\n\nChange-Id: I362069e71e5168cc3502b3ba29248baaa799e585\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7261655\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "a6c378beaf914f998f44c244223aa65c6d302497",
      "tree": "5c43c9862ef9d8dcf78729cac591a07c7b20309c",
      "parents": [
        "ef5588bff0e32256569736c4edf4ffb34b399d56"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Wed Mar 11 04:01:01 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Mar 11 06:52:33 2026"
      },
      "message": "setup: Publish cros_docker image version 20260311035936.\n\nA new release of cros_docker image on 20260311035936,\nbuilt from source using hash ef5588bff0e32256569736c4edf4ffb34b399d56.\nPublished as factory-server-20260311035936-ef5588-docker-27.5.0.txz.\n\nMajor changes:\nef5588bff dome: Add a test for UpdateFactoryDriveDialog\nf2a66a28e umpire_dut_commands_servicer: Improve code style\nf8bccd7ea fastboot: fix bug for ufs provision option\n6a21d9105 umpire_dut_commands_servicer: Atomicly receive factory reports\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I64eedba2eaaf642cd30aee382f01413c92a8f11a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7652138\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "ef5588bff0e32256569736c4edf4ffb34b399d56",
      "tree": "7a48aca56801402501df1156cebe5566b6fb69e0",
      "parents": [
        "d31155e73ffe667692e574d817c3d551bbd7fd8e"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Mon Dec 15 07:18:14 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Mar 06 08:16:45 2026"
      },
      "message": "dome: Add a test for UpdateFactoryDriveDialog\n\nAdd a new unit test for UpdateFactoryDriveDialog.\n\nBUG\u003db:147211050\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: Iee3f66404783dcb5fc004c6049fb0b6bc222169b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7260255\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "d31155e73ffe667692e574d817c3d551bbd7fd8e",
      "tree": "94f2ceac079f686dcd750d79db3d3362b7aab73f",
      "parents": [
        "20f493274fe76d5c651fdeef8998c5517d2c4d05"
      ],
      "author": {
        "name": "Tony Chang",
        "email": "tonytcc@google.com",
        "time": "Wed Feb 25 10:00:47 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Mar 02 04:11:14 2026"
      },
      "message": "goofy: start http server by python3\n\nin check_disk_usage function, start http server by python3 instead of\nbusybox httpd. to prevent the busybox crash problem.\n\nBUG\u003db:487440148, b:463287808\nTEST\u003dmake toolkit;\n     dd if\u003d/dev/zero of\u003d/var/garbage bs\u003d50M;\n     dd if\u003d/dev/zero of\u003d/var/factory/garbage bs\u003d50M;\n     install toolkit and reboot, able to show disk space is full page\n\nChange-Id: I8986254f8235cd19cfb17f323b59994178ace9ca\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7605940\nTested-by: Tony Chang \u003ctonytcc@google.com\u003e\nReviewed-by: Cheng-Han Yang \u003cchenghan@chromium.org\u003e\nCommit-Queue: Tony Chang \u003ctonytcc@google.com\u003e\nReviewed-by: Hung-Te Lin \u003chungte@chromium.org\u003e\n"
    },
    {
      "commit": "20f493274fe76d5c651fdeef8998c5517d2c4d05",
      "tree": "8d5ae5aa9f72b44a3e7ff9c93c48bcd59cbc9d9f",
      "parents": [
        "f2a66a28ed0b1d093a2b9c1272d6421149f2af10"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu Jan 29 21:10:09 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 13 04:31:29 2026"
      },
      "message": "upload_reports_sftp: Introduce upload reports without archiving\n\nSupport upload factory reports without archiving them.\n\nBUG\u003db:479837133\nTEST\u003dtest with CL:7542060\n\nChange-Id: I0c6eb73e2d6301bf3283004f835cf7aa05f5a20d\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7542058\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "f2a66a28ed0b1d093a2b9c1272d6421149f2af10",
      "tree": "83de7cd929ab8b9e18aea20fa6d17105970fe2eb",
      "parents": [
        "09b093fb1485ccaf0f4222fcdb1759387ea0adda"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Tue Feb 03 16:43:25 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 13 04:31:26 2026"
      },
      "message": "umpire_dut_commands_servicer: Improve code style\n\nNo logic changes.\n\nAdd a prefix underscore to functions that are not exposed.\n\nFix some mypy issues.\n\nBUG\u003db:479837133\nTEST\u003dcrrev/c/7542056\n\nChange-Id: Ibb7b22a7a2792dfde6508a1922f57ce4c144faf6\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7542057\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "09b093fb1485ccaf0f4222fcdb1759387ea0adda",
      "tree": "46e6a765dd34cd6cb87a7bb4d872f79ce924cb51",
      "parents": [
        "f8bccd7eac0a96f321e985c578a575ed3e6e5e14"
      ],
      "author": {
        "name": "Wen-Ting Tseng",
        "email": "wdzeng@chromium.org",
        "time": "Fri Dec 05 08:02:47 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 13 04:25:47 2026"
      },
      "message": "hwid_extractor: Improve Dockerfile style\n\nLet `as` be `AS`.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: Ia838435e8dd54732a2e20a470dd71c9eaf6aa87c\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7231339\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "f8bccd7eac0a96f321e985c578a575ed3e6e5e14",
      "tree": "883f1d93be8e0875a1e58e3729f52c5d29be4d69",
      "parents": [
        "6a21d91050d3ee1a47afe1ef85ccf91afaa018cb"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Feb 12 04:02:16 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Feb 12 07:07:42 2026"
      },
      "message": "fastboot: fix bug for ufs provision option\n\nCheck the boolean value in the config.\n\nBUG\u003db:424375985\nTEST\u003d1) Use DOME UI to trigger the fastboot service\n     2) Switch ufs provision toggle and deploy\n     3) Check if ufs provision is executed as config\n\nChange-Id: Idf4fb4fb0a021f5a2fdc15bd2b2fdd04950228a7\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7570282\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "6a21d91050d3ee1a47afe1ef85ccf91afaa018cb",
      "tree": "710b762087b6e26019d27a4340f3790facb49368",
      "parents": [
        "539062dcf80c80b611707fd9562a6dd8eda98901"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Tue Feb 03 14:30:14 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Feb 10 17:56:36 2026"
      },
      "message": "umpire_dut_commands_servicer: Atomicly receive factory reports\n\nThe factory report upload script (from Umpire to the SFTP server) will\nsupport uploading without archiving. The script will scan existing\nfactory reports and upload them. We want to prevent the script from\naccidentally uploading partially received factory reports, so we need\nto atomicly save factory reports.\n\nBUG\u003db:479837133\nTEST\u003dManually run the \"sync factory server\" test and inspect the\n     uploaded report\n\nChange-Id: I01ff010cf25eb022aba45198acd816d55a59ef10\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7542056\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Chun-Tsen Kuo \u003cchuntsen@chromium.org\u003e\nCommit-Queue: ChromeOS Auto Retry \u003cchromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com\u003e\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\n"
    },
    {
      "commit": "539062dcf80c80b611707fd9562a6dd8eda98901",
      "tree": "945c9f1e894ae7071dc5c10b0b7e40f19e47c564",
      "parents": [
        "8cfdcf43d1253af636c3c8c68187699ee18646e1"
      ],
      "author": {
        "name": "Chung-Sheng Wu",
        "email": "chungsheng@google.com",
        "time": "Tue Feb 10 04:59:56 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Feb 10 15:49:20 2026"
      },
      "message": "factory: Add md doc\n\nGenerate the sphinx doc to md format so it can be viewed via Gitiles.\nThis change also add venv commands so generating doc won\u0027t depends on\ncros_sdk.\n\nBUG\u003db:479694916\nTEST\u003dmake doc-md\n\nChange-Id: Ia54425199a1701b65fe00f6409249e4b7de0bf9d\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7559911\nTested-by: Chung-sheng Wu \u003cchungsheng@google.com\u003e\nReviewed-by: Hung-Te Lin \u003chungte@chromium.org\u003e\nAuto-Submit: Chung-sheng Wu \u003cchungsheng@google.com\u003e\nCommit-Queue: Hung-Te Lin \u003chungte@chromium.org\u003e\n"
    },
    {
      "commit": "8cfdcf43d1253af636c3c8c68187699ee18646e1",
      "tree": "b1e40154f86301c7dc87fe4979c5cb6f4ab5ff55",
      "parents": [
        "b5147b720293553eedcb800998e49a336228ee3c"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu Jan 29 20:28:55 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Feb 07 20:24:02 2026"
      },
      "message": "upload_reports_sftp: Improve moving reports to the finished dir\n\nFix that the implementation `mv /path/to/src_dir/ /path/to/dst_dir/` may\nfail if /path/to/dst_dst/src_dir` already exists.\n\nBUG\u003db:479837133\nTEST\u003dcrrev/c/7542060\n\nChange-Id: I946bdad82fe1cb9d042f8736d6749b2dc7a33c87\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7542055\nReviewed-by: Chun-Tsen Kuo \u003cchuntsen@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "b5147b720293553eedcb800998e49a336228ee3c",
      "tree": "e603d72e807b70d1e9bab6021253b4966d82ba54",
      "parents": [
        "07985b0751ad10b8259b1a19908dc18c7c67947f"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu Jan 29 18:57:35 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Feb 07 20:24:00 2026"
      },
      "message": "upload_reports_sftp: Inline `_ReportArchiver` to `_ArchiveUploader`\n\nThe only user of `_ReportArchiver` is `_ArchiveUploader`. Inline it to\nimprove code style.\n\nBUG\u003db:479837133\nTEST\u003dcrrev/c/7542060\n\nChange-Id: Ib41ae210323fe35111c435c52ca9b82066d618c7\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7542054\nReviewed-by: Chun-Tsen Kuo \u003cchuntsen@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "07985b0751ad10b8259b1a19908dc18c7c67947f",
      "tree": "ceb743c62d35d155f3446a44c9a1fca2ee5eec5d",
      "parents": [
        "a4daba3b3035376de1ab142616615ae6f0638a7e"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu Jan 29 18:16:17 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Feb 07 20:23:56 2026"
      },
      "message": "upload_reports_sftp: Introduce `_BaseUploader` interface\n\nWe will have two types of uploader. Declare an interface for a uploader,\nand let `_ArchiveUploader` implement it.\n\nThe script behavior does not change though this CL contains many logic\nchanges.\n\nBUG\u003db:479837133\nTEST\u003dcrrev/c/7542060\n\nChange-Id: Ibcbad79bdce0a0df0a401a31d0415d784140a5c2\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7542053\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Chun-Tsen Kuo \u003cchuntsen@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "a4daba3b3035376de1ab142616615ae6f0638a7e",
      "tree": "0afc5152b3ab05fdde33e9b90be3d7bb0e2cb024",
      "parents": [
        "58509140542adcaa3300007c2e8aa062f03c6613"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Fri Feb 06 14:02:39 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 06 16:11:14 2026"
      },
      "message": "setup: Publish cros_docker image version 20260206220128.\n\nA new release of cros_docker image on 20260206220128,\nbuilt from source using hash 58509140542adcaa3300007c2e8aa062f03c6613.\nPublished as factory-server-20260206220128-585091-docker-27.5.0.txz.\n\nMajor changes:\n585091405 umpire: change to push single file in DownloadFactoryDrives\nca7e589f4 fastboot: Add flashing dtbo partition for arm devices\n5671a85ad umpire: Add DownloadFactoryDrives RPC to download file to target device\nd8e8e0567 umpire: Add DownloadPayload grpc\n07303f12f setup: Upgrade DOCKER_VERSION from 20.10.0 to 27.5.0\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I08403e819528a85ef16700efaf34fd3d4c99024b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7543787\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: ChromeOS Auto Runner \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "58509140542adcaa3300007c2e8aa062f03c6613",
      "tree": "f59f56cf1c5534da9a061f70969276af453f63f4",
      "parents": [
        "ca7e589f43bf911900edfb1afc5fdab0af4ac012"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Fri Feb 06 06:34:52 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 06 12:14:51 2026"
      },
      "message": "umpire: change to push single file in DownloadFactoryDrives\n\nIn the origin code, it tried to push an tmp directory to the DUT.\nThis CL changes to only push the specified file only, since our grpc\ncommand now only support requesting single file.\n\nBUG\u003db:467196949, b:475747725\nTEST\u003d(1) Build the dome server with this CL\n     (2) Upload the file (e.g. *.binpb or * .bin) to the Factory Drives\n     (3) Run gRPC call from the DUT that connects to the server\n     (4) Verify the file can be downloaded to the DUT\n\nChange-Id: If5fb9a8cf7a7225c32a97e6a705187595d9ffcd4\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7543785\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: ChromeOS Auto Runner \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "ca7e589f43bf911900edfb1afc5fdab0af4ac012",
      "tree": "9da8ef38367469226cb6f33881fff39c6aa3244f",
      "parents": [
        "5671a85adf7bcd773b60fa385ea704f666a64a33"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Feb 05 09:11:38 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 06 06:59:58 2026"
      },
      "message": "fastboot: Add flashing dtbo partition for arm devices\n\nThe dtbo partition is added for ARM devices. This CL add the process to\nflash it in FW fastboot when it is available.\nThis CL also change to use fastboot command to conduct userdata erasing.\n\nBUG\u003db:481993270\nTEST\u003d1) ./fastboot_orchestrator \\\n  -v \\\n  -s fastboot_img_src \\\n  -i 192.168.1.0/24 \\\n  -b ${board_name} \\\n  -p ${project_name} \\\n  --idle_timeout 300\nTEST\u003d2) Use DOME UI to trigger the fastboot service\n\nChange-Id: I275286bb03fd0a09bf0e6e30f32f619f8430b77b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7544745\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "5671a85adf7bcd773b60fa385ea704f666a64a33",
      "tree": "e5cfd13610eee06353f99f5b8b1ccfdbd4f2d8d0",
      "parents": [
        "d6d652ba75993bdecb1d5f1e350411e0070b1d80"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Wed Jan 28 10:04:37 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 06 04:47:07 2026"
      },
      "message": "umpire: Add DownloadFactoryDrives RPC to download file to target device\n\nThis CL introduces the new gRPC method `DownloadFactoryDrives` to the\nUmpireDUTCommands service to let the target device can download file\nfrom factory drives of the factory server.\n\nBUG\u003db:467196949, b:475747725\nTEST\u003d(1) Build the dome server with this CL\n     (2) Upload the file (e.g. *.binpb or * .bin) to the Factory Drives\n     (3) Run gRPC call from the DUT that connects to the server\n     (4) Verify the file can be downloaded to the DUT\n\nChange-Id: Ie2bd73e4c44c36c52e54e36da0b9c907a7bb7e25\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7525427\nCommit-Queue: ChromeOS Auto Runner \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "d6d652ba75993bdecb1d5f1e350411e0070b1d80",
      "tree": "0c32c368ee776a6e6f80602cc122ed0185d08e72",
      "parents": [
        "ec3b3eae70e754487f22bcec67c719beb582e78c"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Feb 05 14:42:34 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Feb 06 04:30:14 2026"
      },
      "message": "fastboot: change reboot command after UFS provision\n\nChange to use naive `reboot` command after UFS provision, since `reboot\nbootloader` might fail due to invalid gpt after the UFS configuration\nchange. In addition, `reboot bootloader` writes a message to the misc\npartition. This may cause issues following a UFS configuration change,\nas the device must be rebooted before any further disk write operations\nare performed.\n\nBUG\u003db:424375985\nTEST\u003d1) ./fastboot_orchestrator \\\n  -v \\\n  -s fastboot_img_src \\\n  -i 192.168.1.0/24 \\\n  -b ${board_name} \\\n  -p ${project_name} \\\n  --idle_timeout 300 \\\n  --enable_ufs_provision \\\n  --factory_ufs_binary_path \\\n    /usr/local/factory/bin/factory_ufs\nTEST\u003d2) Use DOME UI to trigger the fastboot service\n\nChange-Id: If5a78d5b4cddc2314d81f104b726395e82db1cae\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7544744\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "ec3b3eae70e754487f22bcec67c719beb582e78c",
      "tree": "662a894d35dac0b7cc71bb089f9b33943c488e3a",
      "parents": [
        "eba8ada2493df5db63ba34fa0a51a3b6cab2a0f6"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Thu Jan 29 18:09:37 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Feb 05 05:44:34 2026"
      },
      "message": "upload_reports_sftp: Do slightly refactoring\n\nFix potential bugs and type lint problems.\n\nMake use of `sorted`. Move `_MD5InBase64` function to global since it is\na standalone function.\n\nBUG\u003db:479837133\nTEST\u003dcrrev/c/7542060\n\nChange-Id: Iab4ea5800a89972cfb04f4b0357307f5b95c2b5a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7532234\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Chun-Tsen Kuo \u003cchuntsen@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "eba8ada2493df5db63ba34fa0a51a3b6cab2a0f6",
      "tree": "1eb374fa36a358ca1070180e85be2d2bf7f2cc08",
      "parents": [
        "d8e8e05671eb7b7496165e9efffea3ed8f10c5f6"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Tue Feb 03 10:33:39 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Feb 04 12:30:36 2026"
      },
      "message": "upload_reports_sftp: Improve code style\n\nNo logic changes.\n\nAdd a underscore prefix for class and variable names since they are\nnot exposed.\n\nUpdate typings to align with CrOS SDK Python 3.11.\n\nUpdate pydocs and comments. One and two spacing are mixed in the file,\nso align them to one spacing.\n\nBUG\u003db:479837133\nTEST\u003dcrrev/c/7542060\n\nChange-Id: Ia2c40cb6b0475d260d1754fac84739a93c7037ee\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7532233\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Chun-Tsen Kuo \u003cchuntsen@chromium.org\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "d8e8e05671eb7b7496165e9efffea3ed8f10c5f6",
      "tree": "a80f6bb99e8b3e7fec7746de30fb67f7c501ff2b",
      "parents": [
        "07303f12fcad4c202a773aedeb307bc85bc61f37"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Wed Jan 28 13:52:10 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Feb 02 13:24:45 2026"
      },
      "message": "umpire: Add DownloadPayload grpc\n\nThis CL add a new gprc, DownloadPayload, to download the specified\npayload from Umpire bundle. The UpdateFactoryApp and GetOtaPackage grpc\nwill then be deprecate.\n\nBUG\u003db:479464111\nTEST\u003dgrpcurl \\\n    -emit-defaults \\\n    -d \u0027{\"payload_type\": 1, \"target\": \"192.168.1.114:5555\",\"path\": \"/tmp/factory_app.apk\"}\u0027 \\\n    -plaintext \\\n    -import-path / \\\n    -proto ./py/umpire/server/proto/umpire_dut_commands.proto \\\n     192.168.1.190:8089 \\\n     com.google.android.factory.factory.proto.umpire.UmpireDUTCommands/DownloadPayload\n\nChange-Id: I077ae092f163800059df77536f05e99c72774029\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7526192\nReviewed-by: Jimmy Sun \u003cjimmysun@chromium.org\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "07303f12fcad4c202a773aedeb307bc85bc61f37",
      "tree": "2049b30e8d61edfd244aead95579db9231cc6fc4",
      "parents": [
        "d627aa7e0e9ab1ac7651f95a9e67f5d902aa5ab7"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Tue Jan 20 03:06:26 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jan 20 05:15:51 2026"
      },
      "message": "setup: Upgrade DOCKER_VERSION from 20.10.0 to 27.5.0\n\nWhen we using the newer docker version with Dome, it will show some\nerror like this: \"client version 1.41 is too old. Minimum supported\nAPI version is 1.44, please upgrade your client to a newer version\"\n\nCurrently, we are using docker version 20.10.0 on our container, that\nis too old for Dome, so we update to version from 20.10.0 to 27.5.0.\n\nBUG\u003dNone\nTEST\u003dcd py/dome \u0026\u0026 make e2e-test\nTEST\u003dRun `setup/cros_docker.sh build \u0026\u0026 setup/cros_docker.sh run`,\n     and then open the Dome web page, then click every thing, make\n     sure those features didn\u0027t break.\n\nChange-Id: I0b8cc96d56587c2f52f07593de6d3c3a54dc144a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7495831\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: ChromeOS Auto Runner \u003cchromeos-auto-runner@chromeos-bot.iam.gserviceaccount.com\u003e\nReviewed-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "d627aa7e0e9ab1ac7651f95a9e67f5d902aa5ab7",
      "tree": "6ee2c5f4e9fe6970b85fce1738e0129471195d65",
      "parents": [
        "693aba038462563abcfb6933c6dbe10e79d04712"
      ],
      "author": {
        "name": "Allen Shih",
        "email": "allenshihmc@google.com",
        "time": "Wed Jan 14 02:25:41 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Jan 15 04:30:58 2026"
      },
      "message": "hwid/service: Apply prefix match for batteries with regex values in VPG\n\nPreviously, when checking if a prefix match should be applied to a\nbattery component, we skipped any battery that contained a regex value\nin its fields. However, prefix matches should still be applied in these\ncases, as the string field might be the truncated ToT probe results.\nThis CL updates the verification payload generator to handle this\ncorrectly by extracting the raw string from the regex and using it for\ncomparison between batteries.\n\nBUG\u003db:473418569\nTEST\u003d./deploy/cros_hwid_service.sh test\n\nCq-Depend: chrome-internal:8928377\nChange-Id: I29df338b8a84ca8cc0884ac17421626061341ae8\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7461022\nCommit-Queue: Allen Shih \u003callenshihmc@chromium.org\u003e\nTested-by: Allen Shih \u003callenshihmc@chromium.org\u003e\nReviewed-by: Clark Chung \u003cckclark@chromium.org\u003e\n"
    },
    {
      "commit": "693aba038462563abcfb6933c6dbe10e79d04712",
      "tree": "bc589bfe821e1b5f4bee5fac6fdbe70138dd872a",
      "parents": [
        "82d601f0c8eb5d43d33ef425c7e7963e0a219a56"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Jan 12 11:43:50 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jan 13 03:55:29 2026"
      },
      "message": "setup: Publish cros_docker image version 20260112194236.\n\nA new release of cros_docker image on 20260112194236,\nbuilt from source using hash 82d601f0c8eb5d43d33ef425c7e7963e0a219a56.\nPublished as factory-server-20260112194236-82d601-docker-20.10.0.txz.\n\nMajor changes:\n82d601f0c umpire: make XML-RPC proxy thread safe\n7de12087d fastboot: integrate UFS provision\n1fbe07ef4 setup: pack factory_ufs to the docker image of dome\n84fb6fa0d umpire: Append report index to gRPC-uploaded reports\n94aef625a umpire: Use `context.abort` in `UmpireDUTCommandsServicer.UploadReport`\nd10acb79f dome: Change to a more appropriate unit test scope\n\nBUG\u003db:182096756\nTEST\u003dNone\n\nChange-Id: I0a5d201eff4f5a12271275ba92cbc3182402f108\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7450960\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "82d601f0c8eb5d43d33ef425c7e7963e0a219a56",
      "tree": "372630085ec2f5487b96e2b0004adabfd2096d7f",
      "parents": [
        "7de12087d953fd56359f3392b2ac62058f588841"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Mon Jan 12 05:41:18 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jan 12 08:29:15 2026"
      },
      "message": "umpire: make XML-RPC proxy thread safe\n\nThe `xmlrpc.client.ServerProxy` is not thread safe and original code\nshare on server proxy instand for all request.  If a request start\nbefore another one finishes, it will result in exception.\n\nMake server proxy thread-local instance to ensure thread safe.\n\nBUG\u003db:474530404\nTEST\u003dgrpcurl \\\n    -emit-defaults -d \u0027{\"component\": 1}\u0027 \\\n    -plaintext \\\n    -import-path / \\\n    -proto ./py/umpire/server/proto/umpire_dut_commands.proto \\\n     192.168.1.190:8089 \\\n     com.google.android.factory.factory.proto.umpire.UmpireDUTCommands/GetUpdateVersion\n\nChange-Id: I13640f5a0d02e035aaea0bed4276f13915c675b3\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7413842\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\n"
    },
    {
      "commit": "7de12087d953fd56359f3392b2ac62058f588841",
      "tree": "dea3d3fad96e1d228c2c3cbc3b35eeb62705de14",
      "parents": [
        "d2a67ee92ca11624cab302c86202de1a28f01709"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Fri Dec 19 10:45:01 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jan 12 05:50:55 2026"
      },
      "message": "fastboot: integrate UFS provision\n\nThis CL integrate UFS provision process into fastboot image flashing.\nWe read the UFS config from devie with fastboot, use\n`factory_ufs provision-file` to generate the target config, and write it\nback to device with fastboot.\n\nBUG\u003db:424375985\nTEST\u003d1) ./fastboot_orchestrator \\\n  -v \\\n  -s fastboot_img_src \\\n  -i 192.168.1.0/24 \\\n  -b ${board_name} \\\n  -p ${project_name} \\\n  --idle_timeout 300 \\\n  --enable_ufs_provision \\\n  --factory_ufs_binary_path \\\n    /usr/local/factory/bin/factory_ufs\nTEST\u003d2) Use DOME UI to trigger the fastboot service\n\nChange-Id: I473d68d4b69c156763d1de5856be588cf51afa4b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7275790\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "d2a67ee92ca11624cab302c86202de1a28f01709",
      "tree": "8419cfa4d3e23b8934c3efdf91650f40272f5832",
      "parents": [
        "1fbe07ef4bf8402293be0f089da0717a68b880ad"
      ],
      "author": {
        "name": "Clark Chung",
        "email": "clarkchung@google.com",
        "time": "Thu Jan 08 04:47:25 2026"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Jan 08 05:37:01 2026"
      },
      "message": "hwid/service: Add tests for ReviewCL retry logic\n\nThis change adds `@sync_utils.RetryDecorator` on the `git_util.ReviewCL`\nfunction and corresponding tests to ensure its error handling and retry\nmechanism work as expected.\n\nBUG\u003db:473989006\nTEST\u003ddeploy/cros_hwid_service.sh test\n\nChange-Id: I9aa6cde1468c8a0540191fa346654db7af934858\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7373288\nTested-by: Clark Chung \u003cckclark@chromium.org\u003e\nCommit-Queue: Allen Shih \u003callenshihmc@chromium.org\u003e\nAuto-Submit: Clark Chung \u003cckclark@chromium.org\u003e\nReviewed-by: Allen Shih \u003callenshihmc@chromium.org\u003e\n"
    },
    {
      "commit": "1fbe07ef4bf8402293be0f089da0717a68b880ad",
      "tree": "fc35818482822c6d07fc8df13094265591e1ae31",
      "parents": [
        "84fb6fa0d55a93bfd287f4b4e0937b390ab8c125"
      ],
      "author": {
        "name": "Po-Heng Chen",
        "email": "pohengchen@google.com",
        "time": "Thu Dec 18 15:30:03 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jan 07 07:38:08 2026"
      },
      "message": "setup: pack factory_ufs to the docker image of dome\n\nWe need to use factory_ufs binary to process UFS descriptor when doing\nUFS provision from server side.\nThis CL add a stage build factory_ufs binary and copy it into the docker\nimage of DOME.\n\nBUG\u003db:424375985\nTEST\u003d1) ./setup/cros_docker.sh build \u0026\u0026 ./setup/cros_docker.sh run\n     2) docker exec -it ${container_id} bash\n     3) (inside docker) /usr/local/factory/bin/factory_ufs -h\n\nChange-Id: I48e94a341e0be0c85679aec5e8f941551cd78f11\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7276024\nCommit-Queue: Po-Heng Chen \u003cpohengchen@google.com\u003e\nReviewed-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nTested-by: Po-Heng Chen \u003cpohengchen@google.com\u003e\nAuto-Submit: Po-Heng Chen \u003cpohengchen@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\n"
    },
    {
      "commit": "84fb6fa0d55a93bfd287f4b4e0937b390ab8c125",
      "tree": "ee2aedfb9aa76e0d17290569467a2840c494ab86",
      "parents": [
        "94aef625a589e9d66c92c76f96412e90ce42683c"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Tue Dec 30 09:22:23 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jan 06 18:43:28 2026"
      },
      "message": "umpire: Append report index to gRPC-uploaded reports\n\nWe collect umpire server UUID and report index for report events.\n\nBUG\u003db:469142061, b:469141774\nTEST\u003dRun \"sync factory server\" test three times, make the first and\n     third tries succeed while second try fail, and then verify the\n     report index increments by 1 between the two successful tries\n\nChange-Id: Ic1851035485c23f0fb3965c8942f58521308f242\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7319884\nCommit-Queue: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    },
    {
      "commit": "94aef625a589e9d66c92c76f96412e90ce42683c",
      "tree": "fed679d8bcd640f756128e5ad17e0703933f7102",
      "parents": [
        "626faeb23452f27921031113ff76930c7e6f9fe0"
      ],
      "author": {
        "name": "wdzeng",
        "email": "wdzeng@chromium.org",
        "time": "Tue Dec 30 09:17:31 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jan 05 13:36:12 2026"
      },
      "message": "umpire: Use `context.abort` in `UmpireDUTCommandsServicer.UploadReport`\n\nImprove code style.\n\nBUG\u003db:469142061, b:469141774\nTEST\u003dManually run \"sync factory server test\" and download factory\n     reports\n\nChange-Id: Ic32b139517697abfc030206fb7fa004b2d3d4373\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7319883\nAuto-Submit: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nCommit-Queue: Denny Huang \u003cdennyh@google.com\u003e\nTested-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\nReviewed-by: Denny Huang \u003cdennyh@google.com\u003e\n"
    },
    {
      "commit": "626faeb23452f27921031113ff76930c7e6f9fe0",
      "tree": "f4a2d34d6ae645a04331007eb3c042a19b11c19f",
      "parents": [
        "d10acb79fa08ce03d81ef91d165ca8b896d027c3"
      ],
      "author": {
        "name": "Haikun Zhou",
        "email": "zhouhaikun5@huaqin.corp-partner.google.com",
        "time": "Thu Dec 18 11:39:50 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Dec 19 07:13:01 2025"
      },
      "message": "chrome_dev: Disable search engine choice screen\n\nWhen the DUT region is a European country, the factory UI will\npop up browser engine selection screen.\n\nAdd --disable-search-engine-choice-screen flag to disable it.\n\nBUG\u003db:469322566\nTEST\u003dChange flag in chrome_dev.conf and verify pass\n\nChange-Id: Iac90030782eee4dc96921455d5051dff3b684c9a\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7274996\nReviewed-by: Pin-yen Lin \u003ctreapking@chromium.org\u003e\nReviewed-by: cong yang \u003cyangcong5@huaqin.corp-partner.google.com\u003e\nTested-by: Haikun Zhou \u003czhouhaikun5@huaqin.corp-partner.google.com\u003e\nCommit-Queue: Pin-yen Lin \u003ctreapking@chromium.org\u003e\nReviewed-by: Tony Chang \u003ctonytcc@google.com\u003e\n(cherry picked from commit 829c5a5d058f9b9cea78675ae3e5cef189996eb8)\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7279399\nTested-by: Pin-yen Lin \u003ctreapking@chromium.org\u003e\nReviewed-by: Chung-sheng Wu \u003cchungsheng@google.com\u003e\n"
    },
    {
      "commit": "d10acb79fa08ce03d81ef91d165ca8b896d027c3",
      "tree": "381a2ca9a9171366247e60ece5819d307919dae7",
      "parents": [
        "3d36cce7920ee328040f2404fca4c61442f66bf2"
      ],
      "author": {
        "name": "Ruei-fong Lyu",
        "email": "rueifong@google.com",
        "time": "Thu Dec 11 04:55:10 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Dec 15 10:30:17 2025"
      },
      "message": "dome: Change to a more appropriate unit test scope\n\nChange to a more appropriate unit test scope.\n\nBUG\u003dNone\nTEST\u003dcd py/dome \u0026\u0026 make test\nTEST\u003dcd py/dome \u0026\u0026 make lint-frontend\nTEST\u003dcd py/dome \u0026\u0026 make test-frontend-coverage\n\nChange-Id: I7e4e2e490b0cd7df5d3961d151e67b21b1ddd909\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/7260254\nTested-by: Ruei-fong Lyu \u003crueifong@google.com\u003e\nCommit-Queue: Ruei-fong Lyu \u003crueifong@google.com\u003e\nReviewed-by: Wen-Ting Tseng \u003cwdzeng@chromium.org\u003e\n"
    }
  ],
  "next": "3d36cce7920ee328040f2404fca4c61442f66bf2"
}
