)]}'
{
  "log": [
    {
      "commit": "c9a260896a81272cdeff446d0be7d3208516f195",
      "tree": "1a829fbde68ecaee7e67e84f6354620b3dde9369",
      "parents": [
        "cca8e106247d6769101eab07d497459413bfead0"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Fri May 22 08:13:10 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 08:13:10 2026"
      },
      "message": "siso: update version string to v1.5.16\n\nv1.5.15 is rolled out as pinned version at\ngit_revision:c74a9b09521abc61117b58538cdc0336cb37b182\nhttps://crrev.com/c/7867088\nhttp://ag/40039473\n\nBug: b/515193714\nChange-Id: I80c565075535ef66c8f44ae6e7b9721d65d4d361\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7867226\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "cca8e106247d6769101eab07d497459413bfead0",
      "tree": "3495f1ccdb22b582ead6d83fa8edd56d8e04696d",
      "parents": [
        "840d52dddb18557f9dfd35ad0a86e6986609bbc0"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Fri May 22 07:45:26 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 07:45:26 2026"
      },
      "message": "kajiya: add --trace_inputs flag for FUSE input access tracing\n\nRecord which input files each action opens through the FUSE layer and\nreport the sorted list as auxiliary metadata in ActionResult. This\nenables dependency pruning by clients like Bazel.\n\nWhen tracing is enabled, RegisterSandbox creates per-sandbox file inodes\n(bypassing the shared inode caches) so each carries an AccessRecorder\nand its input-root-relative path. After execution, observed inputs are\nattached to ExecutionMetadata.AuxiliaryMetadata as a protobuf Struct.\n\nChange-Id: I0d82a6950100c45f63222680ca1b7500f04b1c35\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7725316\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "840d52dddb18557f9dfd35ad0a86e6986609bbc0",
      "tree": "0897960f5a955037c6860f1bd636ad9e0aa1f119",
      "parents": [
        "c74a9b09521abc61117b58538cdc0336cb37b182"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri May 22 07:22:00 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 07:22:00 2026"
      },
      "message": "siso: siso_metadata.json combine os/kernel\n\nos_version is only used for macOS, Windows.\nkernel_version is only used for Linux.\n\nNo siso version has been published that includes kernel_version. Prefer to only publish os_version, no current strong need for Linux distro version compared to kernel version.\n\nThis is a safe change for siso_metadata.json consumption pipeline.\n\nBug: b/503568819\nChange-Id: Id9fb3bee2dacf06938454bfb942caa954af67120\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7868067\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "c74a9b09521abc61117b58538cdc0336cb37b182",
      "tree": "259695a96c5e2fe057ca190f3c3aba838882ca64",
      "parents": [
        "b09ea28b1ebc1720fe733c5ecfc4ecda2da58d51"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Fri May 22 04:47:20 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 04:47:20 2026"
      },
      "message": "Add local-fallback to racing strategy\n\nAndroid relies on local fallback for some rules.  Add that to racing.\n\nChange-Id: I8407dbd68ee22355fc9f9c8669425936f810c0c8\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7866122\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\n"
    },
    {
      "commit": "b09ea28b1ebc1720fe733c5ecfc4ecda2da58d51",
      "tree": "40c16d86fb72318f02105d0c7805dae427b8c022",
      "parents": [
        "3d26178c2572afdb63a6be595413bfbd4f7b20ce"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri May 22 04:12:06 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 04:12:06 2026"
      },
      "message": "siso: use x/sys/windows instead of syscall for RtlGetVersion\n\nChange-Id: I4e68ef5acf579365fecb9d55b906d78ed4875693\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7870092\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "3d26178c2572afdb63a6be595413bfbd4f7b20ce",
      "tree": "1380d3787f0f1403265a7517fc2ae26f5afb9dfb",
      "parents": [
        "39745c97bdf693d2a5a1d88b5fb89194322c8bc7"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri May 22 04:01:21 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 04:01:21 2026"
      },
      "message": "siso: siso_metadata.json log kernel version for Linux\n\nBug: b/503568819\nChange-Id: I5f0e6fe539643119fcfedd0deb09e218d0a65d85\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7870436\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "39745c97bdf693d2a5a1d88b5fb89194322c8bc7",
      "tree": "a88cc7326485e6d5a72636d7a96cf10784098409",
      "parents": [
        "fc87482de85f95443a7e025ff2ff044874ae0adf"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Fri May 22 02:56:10 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 02:56:10 2026"
      },
      "message": "kajiya: gate FUSE splice on pipe soft limit\n\nUse go-fuse\u0027s splice fast path only when fs.pipe-user-pages-soft is 0.\nWith the default per-user soft limit, enough parallel reads can make\nF_SETPIPE_SZ fail with EPERM; falling back to writev avoids that on\nunconfigured hosts while preserving zero-copy reads for machines that\nexplicitly disable the soft limit.\n\nChange-Id: If85774975f6bcee05b2144e450af9957d30b707e\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838928\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "fc87482de85f95443a7e025ff2ff044874ae0adf",
      "tree": "0672ecf3226b26ad217dee80d01a697deab6bfcf",
      "parents": [
        "ef71658386766e10e793c94048bced3c56b039e1"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Fri May 22 02:52:45 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 02:52:45 2026"
      },
      "message": "kajiya: fix E2E execute benchmark\n\nThe synthetic benchmark action has no container image, so it must opt\ninto host filesystem execution.\n\nThe benchmark now also checks nsjail and /dev/fuse availability before\nrunning the relevant cases and includes action stderr in failures, which\nmakes it work in more limited environments and let\u0027s us debug future\nbreakages more easily.\n\nChange-Id: If5933cc77f60f396498ee107812935cd0ead594b\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7870409\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "ef71658386766e10e793c94048bced3c56b039e1",
      "tree": "ecdab6c7e25e875c780e539abfdda1436a36b348",
      "parents": [
        "1a44ffe5cb6b648f0eb55d294faea2a2b7e437c2"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Fri May 22 02:14:01 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 22 02:14:01 2026"
      },
      "message": "siso: remove unnecessary dependency to remote-apis-sdks\n\nremote-apis-sdks/go/pkg/command was only used\nfor command.TimeToProto(time.Now()),\nwhich is equivalent with timestamppb.Now().\n\nIt will remove unnecessary dependency\nfrom remote-apis-sdks -\u003e remote-apis.\n\nBug: b/506882659\nChange-Id: I52b0fb36204371a826acd8d08ce892301f6d0f60\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7870410\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "1a44ffe5cb6b648f0eb55d294faea2a2b7e437c2",
      "tree": "6fd90bdcc4b38756069083584b3e1f90b3c017f0",
      "parents": [
        "7f0d4cafcbf749006ae64291d22e1ae671d9d812"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu May 21 21:04:00 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 21 21:04:00 2026"
      },
      "message": "Rename remote bindings\n\nI\u0027ve gotten several comments on the doc about this, seems\npeople prefer to not have \"siso\".\n\nBug: 513865342\nChange-Id: I100f17c2fa3d376c6d0610da4432156a42e9786e\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7865597\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Cole Faust \u003ccolefaust@google.com\u003e\nCommit-Queue: Cole Faust \u003ccolefaust@google.com\u003e\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\n"
    },
    {
      "commit": "7f0d4cafcbf749006ae64291d22e1ae671d9d812",
      "tree": "cfe27fb1e0e9a197cc238106d60545579cf39599",
      "parents": [
        "9b5fd9d5920947a5265d6007a08b20802e7c17ee"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Thu May 21 11:35:09 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 21 11:35:09 2026"
      },
      "message": "o11y/clog: Propagate Trace/Span ID and separate siso.step in OTEL path\n\nPreviously, when Siso uploaded logs through the OpenTelemetry (OTEL)\nCollector:\n1. Trace ID and Span ID were not populated in the log entries because\nthe trace context was not embedded in the context passed to\notelLogger.Emit.\n2. Step logs (which should go to \"siso.step\") were merged into\n\"siso.log\" because gcp.log_name was hardcoded to \"siso.log\".\n\nThis CL fixes these issues by:\n1. Extracting the Trace/Span IDs from the logger and setting the\nSpanContext on the context passed to l.otelLogger.Emit.\n2. Dynamically setting gcp.log_name to \"siso.step\" if the log entry\ncontains an HTTPRequest.\n\nThis shows log like https://cloudlogging.app.goo.gl/NP4s5hU3ZSKdhjxC7.\n\nBug: 508387732\nChange-Id: I8f68123c034f416a05fb849b094da04f108a5c32\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7866530\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\n"
    },
    {
      "commit": "9b5fd9d5920947a5265d6007a08b20802e7c17ee",
      "tree": "490f7b1951b400c78133e4ab814b053cad009487",
      "parents": [
        "82f7bc8aec958a6fee7bd7f2f71c3ae29ea22dfd"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu May 21 11:27:48 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 21 11:27:48 2026"
      },
      "message": "siso: Fix for No-Without-Go-Work footer\n\nNo-WithoutGoWork footer didn\u0027t work as recipe enigne\nnormalizes it as No-Withoutgowork.\nUse No-Without-Go-Work by https://crrev.com/c/7866782\n\nChange-Id: I42395b884d4005a8115b823a7d2f9993b7a5475d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7866531\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\n"
    },
    {
      "commit": "82f7bc8aec958a6fee7bd7f2f71c3ae29ea22dfd",
      "tree": "d449ee326c54da6ba19248cbeed30aac3cda4703",
      "parents": [
        "95617735e90d40f8852767e3752e98d74115c1b3"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Thu May 21 04:57:34 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 21 04:57:34 2026"
      },
      "message": "Add fields to EdgeFinished message\n\nThis mirrors what Ninja was doing for:\n- user_time\n- system_time\n- major_page_faults\n- maxrss\n- tags\n\nChange-Id: Ib2dfde8e4855fe59a1d9f455a12ef4889ba76f63\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7808940\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "95617735e90d40f8852767e3752e98d74115c1b3",
      "tree": "3ee09d094f050dea0f74c69ee6177d7ec0166571",
      "parents": [
        "e0d96ffd9e83c2fb4acd04df0661b84378f72e11"
      ],
      "author": {
        "name": "Keybo Qian",
        "email": "keybo@google.com",
        "time": "Thu May 21 03:14:32 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 21 03:14:32 2026"
      },
      "message": "siso: Print out \"no work to do\" messages in quiet mode as well.\n\nWhen Universal Test Runner is executed by agents / harness, siso is in\nquiet mode and does not print this success message in stdout, which\ncauses the \"no-op\" check to fail. This should mitigate the problem.\nchecks.\n\nBug: 509639931\nChange-Id: I8d27f435bc2ea17d50aebcabbb6a7f633bc0e820\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7837826\nAuto-Submit: Keybo Qian \u003ckeybo@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "e0d96ffd9e83c2fb4acd04df0661b84378f72e11",
      "tree": "b4d0e79a184c71fd4fada7d24f7310cebb3936ff",
      "parents": [
        "37a53fca6bb10453cd30dc2b0eda392d52797448"
      ],
      "author": {
        "name": "Yuke Liao",
        "email": "liaoyuke@google.com",
        "time": "Thu May 21 02:23:16 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 21 02:23:16 2026"
      },
      "message": "siso: update version string to v1.5.15\n\nv1.5.14 has been rolled out as pinned version at\ngit_revision:37e594382ae2ef7d69461019dc47e15e7b6a127f\nhttps://crrev.com/c/7862427\nhttp://ag/39985064\n\nBug: b/512275057\nChange-Id: I1bbf6b28f2263a7768b6fbd566bcd4478057f396\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7866601\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "37a53fca6bb10453cd30dc2b0eda392d52797448",
      "tree": "e457ba53e79338444d5ee202a47b589a2417eff0",
      "parents": [
        "b17fd1bc0fb09a2e16545286a339bf69e6c9f852"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Wed May 20 12:07:19 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 20 12:07:19 2026"
      },
      "message": "siso: siso_metadata.json log OS version for macOS and Windows\n\nBug: b/503568819\nChange-Id: I5e03c8b7869f8c7393d7141dfd29cfe46a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7862442\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\n"
    },
    {
      "commit": "b17fd1bc0fb09a2e16545286a339bf69e6c9f852",
      "tree": "b78940ba6cd215873de6f79416b6141162e4f08c",
      "parents": [
        "37e594382ae2ef7d69461019dc47e15e7b6a127f"
      ],
      "author": {
        "name": "Junji Watanabe",
        "email": "jwata@google.com",
        "time": "Wed May 20 06:29:38 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 20 06:29:38 2026"
      },
      "message": "siso: Log queue time/depscan time in Siso step log\n\nAdd \"queue_secs\"/\"depsscan_secs\" labels to log entries for Cloud\nlogging\u0027s log entry.\n\nBug: 513130884\nChange-Id: Ib9e5ea42184ae08bdb0a265084637c95956e90d0\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7863320\nReviewed-by: Richard Wang \u003crichardwa@google.com\u003e\nAuto-Submit: Junji Watanabe \u003cjwata@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "37e594382ae2ef7d69461019dc47e15e7b6a127f",
      "tree": "02a525d4c9c42621bb089019a8937020368475e4",
      "parents": [
        "40f6bbcc7f2d410e7bfd2756c0655d4867577dc6"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Wed May 20 04:10:33 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 20 04:10:33 2026"
      },
      "message": "siso: roll protoc from v34.1 to v35.0\n\nhttps://github.com/protocolbuffers/protobuf/releases/tag/v35.0\n\nChange-Id: I77f6c5ddc8b30eabe1e0910f4d6ca6a99ad7168f\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7863020\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "40f6bbcc7f2d410e7bfd2756c0655d4867577dc6",
      "tree": "fa20be373749223d1c2df36dd644d89e8109c81b",
      "parents": [
        "c0ed0117a8b7f799c7550f68a469d3ead0a0fd7a"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Tue May 19 20:58:53 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 20:58:53 2026"
      },
      "message": "Use .siso_tmp instead of .tmp for tmpfiles\n\nSoong uses \".tmp\" as a suffix for temporary files in build actions,\nwhich means that {output_file}.tmp may exist during a local build action\nthat is racing a remote build action.  Use a different suffix than Soong\ndoes so that we avoid collisions.\n\nChange-Id: I19728c5edee1507e8179e238c4c8837f85c550b4\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7858291\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "c0ed0117a8b7f799c7550f68a469d3ead0a0fd7a",
      "tree": "fce5247b94b6d27b5f4ccb0a464cc476124611db",
      "parents": [
        "01a080b33f225bfd1b6da0c0a60d4a3463401de8"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue May 19 19:10:28 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 19:10:28 2026"
      },
      "message": "Allow configuring remote execution in ninja file\n\nDoc: go/siso-rbe-config-in-ninja-file\n\nHaving the remote execution configuration in the ninja file\nmakes it easy for the build systems that user siso (gn, soong)\nto configure RBE in the same places that the rules are defined.\n\nBug: 513865342\nChange-Id: I1277f31a93e2aeba3f9fbb9cd229e24a5f7b3c10\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7852889\nCommit-Queue: Cole Faust \u003ccolefaust@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "01a080b33f225bfd1b6da0c0a60d4a3463401de8",
      "tree": "a019cb07b8958c87692376ce55a878800d5cba4c",
      "parents": [
        "34b7cc80bd9192d43efcf6ea59db741c2e1c33c7"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Tue May 19 09:02:36 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 09:02:36 2026"
      },
      "message": "siso: fix isolate flags\n\nrename\n -reapi_* \u003d\u003e -src_cas_*\n -cas_*   \u003d\u003e -dst_cas_*\n\ndrop -*_cas_address, since its main purpose is cas access.\n\nSo, isolate would take the following flags for address.\n\n -dst_cas_address\n    or environment variable SISO_DST_CAS_ADDRESS\n  -src_cas_address string\n    or environment variable SISO_SRC_CAS_ADDRESS\n\nkeep support -cas_instance (as alias of -dst_cas_instance)\nfor backward compatibility, since they are used by siso recipe modules.\n\nBug: b/514216995\nChange-Id: I5df9ad70f47484c43f218d7a3c621ad9c4960bd9\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7859209\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\nCommit-Queue: Junji Watanabe \u003cjwata@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "34b7cc80bd9192d43efcf6ea59db741c2e1c33c7",
      "tree": "86d91436b449747f907a05f00e61d9ffd6688bb3",
      "parents": [
        "b3aa8367daba1a5b7699f26667fba94cd5ad1b07"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Tue May 19 08:25:59 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 08:25:59 2026"
      },
      "message": "kajiya: defer docker lookup until an image is needed\n\nNewImageRepository previously aborted at startup if the docker\nexecutable was missing from PATH, which kept Kajiya from launching on\nmachines without Docker (e.g. typical Windows dev setups). Stash the\nLookPath error and only surface it from FetchImage, so actions without a\ncontainer image continue to work and the failure happens at the point\nwhere docker is actually required.\n\nChange-Id: Id85e0d19b1b1f75b0d66bbb199a5f4cd2de8e25d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7858430\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "b3aa8367daba1a5b7699f26667fba94cd5ad1b07",
      "tree": "f7108b5d1d03be23bc19806d8f72751e33627f4e",
      "parents": [
        "2a5e429f5aee83a38ed60b7a02d100bcf3ab1d75"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Tue May 19 08:25:10 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 08:25:10 2026"
      },
      "message": "kajiya: pick a sensible default sandbox per platform\n\nThe --sandbox flag hard-coded \"overlayfs\" as its default, which fails\nflag validation on non-Linux platforms and prevented Kajiya from\nstarting\nat all on Windows. Compute the default dynamically: prefer FuseFS on\nLinux when /dev/fuse is writable, fall back to overlayfs on Linux\notherwise, and use the plain files strategy everywhere else.\n\nChange-Id: Icc5c0c26db3c7d2bae6f7f01094f5d23f92d45bc\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7858429\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "2a5e429f5aee83a38ed60b7a02d100bcf3ab1d75",
      "tree": "d53e8d3487ba578de33344fe50bbfee8e58b7d13",
      "parents": [
        "6c2dd7a620633492f6bf628afb65e72cc78f6b9a"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Tue May 19 08:24:23 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 08:24:23 2026"
      },
      "message": "kajiya: fix client-side action validation error code\n\nLoadAction\u0027s validation failures (bad WorkingDir, malformed sort order,\noutput path that fails filepath.IsLocal, etc.) were surfacing as plain\nGo errors. The Execute service wrapped any non-status error as\ncodes.Internal, which Siso\u0027s reapi client treats as retriable in BOTH\nthe inner ExecuteAndWait loop (reapi/exec.go) and the outer retry.Do\nloop (build/exec_remote.go). On Windows Server bots, an action whose\ncanonicalized output path contained a DOS-reserved basename (e.g.\n\"out/x/aux.out\") would fail IsLocal, propagate as Internal, and trigger\nup to 10x10 retries with exponential backoff — a 7-minute silent hang\nuntil CI\u0027s overall test timeout fired.\n\nThe check itself is correct: Kajiya needs to support running on\nWindows, where filepath.IsLocal()\u0027s reserved-name detection accurately\npredicts which paths it can later materialize on disk. The bug was the\ngRPC code we returned. Client-supplied input that the server can\u0027t\nhandle is codes.InvalidArgument, which Siso (and bazel\u0027s RemoteRetrier)\ncorrectly treat as non-retriable.\n\nIntroduce model.InvalidActionError, route every client-input validation\nfailure in LoadAction/addOutputsToTrie/treeToTrie through it, and have\nexecution.Service.Execute\u0027s deferred error handler errors.As it into\nstatus.Error(codes.InvalidArgument, ...) — following the same pattern\nalready in place for blobstore.MissingBlobsError -\u003e FailedPrecondition.\n\nStrengthen TestLoadAction_OutputErrorPropagates to assert the error\ntype, and add TestLoadAction_WindowsReservedOutputName as a regression\ntest (uses bare \"aux\" so it triggers IsLocal\u003dfalse on every Windows\nversion, including Win 11 where RtlIsDosDeviceName_U no longer flags\n\"aux.\u003cext\u003e\").\n\nBug: 514197708\nChange-Id: I980b30de8b53f76be11169ca38760e20e38a394c\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7852141\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "6c2dd7a620633492f6bf628afb65e72cc78f6b9a",
      "tree": "3d5f71cceee19e7ea9fc107c01e136c580424f8b",
      "parents": [
        "3366c8bd07f7b7f3eab802cf3d859ff477c22391"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Tue May 19 07:56:11 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 07:56:11 2026"
      },
      "message": "siso: update docs for modifying with kajiya\n\nhttps://crrev.com/c/7850168 added `No-WithoutGoWork` footer\nto disable without go workspace in try, to make it possible\nto land API incompatible change without updating go.mod.\n\nExpected to update go.mod as soon as API incompatible change landed.\n\nChange-Id: I181c1cb565040599ef00429f8de811d430e480ca\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7858973\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "3366c8bd07f7b7f3eab802cf3d859ff477c22391",
      "tree": "867b7a879c2b0e4317a6e717cf45e21697a82787",
      "parents": [
        "bcd29b6ed785f97513822e6279b823049074cb61"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Tue May 19 07:42:14 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 07:42:14 2026"
      },
      "message": "siso: bump Kajiya to latest version\n\nChange-Id: I392ddc6da3da4a255671c7d3caaf95b3448b0d98\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806067\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "bcd29b6ed785f97513822e6279b823049074cb61",
      "tree": "f0d96bb21e4a0c7aa16334896945e979a9fa6d35",
      "parents": [
        "05ca9d9b8a5b30c833d2eee330b9f71864111c86"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue May 19 06:58:04 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 06:58:04 2026"
      },
      "message": "Make sandbox depfile verification report all files\n\nPer a comment on crrev.com/c/7830283.\n\nBug: 475013705\nChange-Id: I964c42961a30c2de5a64d5e6d6522694f109d995\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7851345\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Cole Faust \u003ccolefaust@google.com\u003e\n"
    },
    {
      "commit": "05ca9d9b8a5b30c833d2eee330b9f71864111c86",
      "tree": "1532f06faa1259e1ad9986ba8f6ef588639d895d",
      "parents": [
        "94f3d794273b1d6ba8401c9e03b13323b84be31f"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Tue May 19 06:28:35 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 06:28:35 2026"
      },
      "message": "siso: drop unused checkout module from builtin mods\n\nThe Starlark `checkout` module (exposing `checkout.git.origin` from a\n`git ls-remote` lookup) has no consumers: no `.star` file in the siso\nrepo, in Chromium\u0027s `build/config/siso/`, or in any Chromium tree\nloads `@builtin//checkout.star`, references `__builtin_checkout`, or\nreads `.git.origin`. Confirmed via code search.\n\nRemove the module entirely:\n- delete `checkout.star`\n- drop `__builtin_checkout` and the lazy-git Starlark value\n- drop the now-unused `ctx` parameter from `builtinModule`\n\nNet -54 lines and a few fewer imports. If a downstream config we\ndon\u0027t have visibility into ever needs `checkout.git.origin`, the\nright answer is to add the API back deliberately rather than carry\ndead infrastructure.\n\nChange-Id: Icdc61a405b789c944a7cd091f22680b534e11c1e\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7851824\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "94f3d794273b1d6ba8401c9e03b13323b84be31f",
      "tree": "54cce8cb09ce81551501996e256282e5a8390c0a",
      "parents": [
        "e8b1dca94b91d4e35dbe0f1fb9d1c00289327f30"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Tue May 19 06:10:52 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 06:10:52 2026"
      },
      "message": "siso: rename aux.out in e2e test for Windows compat\n\nWindows 10 and older still treat aux.\u003cext\u003e as a reference to the legacy\nAUX device, so filepath.IsLocal rejects such paths. Rename the test\u0027s\nauxiliary log output file from aux.out to debug.out so the test works on\nChromium\u0027s Windows CI, too.\n\nBug: 514197708\nChange-Id: Ib03e8c188b04838a91a075ba5d9c0972edbb7186\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7852140\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "e8b1dca94b91d4e35dbe0f1fb9d1c00289327f30",
      "tree": "3d4bb264595d34c6a849be94e3e6e210375addc5",
      "parents": [
        "e766a3f55476f431423411e2709f3058fac27d32"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Tue May 19 05:56:26 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 05:56:26 2026"
      },
      "message": "siso: add cartfs proto\n\nimport cartfs proto at 11d8d70bcbdcab120fa802e430b317790be6c255\n\nadd \"option go_package\u003d\" line\n\nBug: b/513044090\nChange-Id: I7cf28020c3789526d39f3dec9a910508b5f9d110\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7859029\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "e766a3f55476f431423411e2709f3058fac27d32",
      "tree": "f43e7f5f044c159cecca5f3e1a8ac1d7d3350420",
      "parents": [
        "9473fb5cb363f7d4425db11416bd3a07bba3b721"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Mon May 18 06:37:37 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 18 06:37:37 2026"
      },
      "message": "kajiya: make sharding of CAS and AC optional\n\nBoth `blobstore.New` and `actioncache.New` eagerly created 256\nsubdirectories named {00, 01, ..., ff} for hash-prefix sharding. On\nWindows each Mkdir is ~200µs (NTFS serializes sibling creates on the\nsame parent, so parallelizing doesn\u0027t help), which adds ~500ms of\npure setup cost per cache instance. That\u0027s wasted overhead for\nshort-lived caches like the ones spun up per test in siso\u0027s reapitest\nfake server, where each test puts only a handful of blobs.\n\nIntroduce an Options struct (with a Sharded field) per package and\nsplit each constructor in two:\n\n  * `New(ctx, dir, ...)` keeps the simple signature and uses defaults\n    (no sharding, no skip-validation) -- convenient for tests and\n    short-lived caches.\n  * `NewWithOpts(ctx, dir, ..., opts)` takes the Options struct.\n\nChange-Id: Iea2671c72885980e821a0d5ad7e64c2761ba6790\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7851822\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "9473fb5cb363f7d4425db11416bd3a07bba3b721",
      "tree": "2d3bbf15cefa55cb0f42bb462a9e8beac7fb73ed",
      "parents": [
        "33020a9e500aa9d46d0631eda4aa78eb7480b813"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Mon May 18 06:17:07 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 18 06:17:07 2026"
      },
      "message": "siso: use cpuid for physical cores and switch logical cores over\n\nUnfortunately there is enough complexity in retrieving physical cores\nthat a DIY solution doesn\u0027t make as much sense.\n\nSee for example:\nhttps://github.com/klauspost/cpuid/blob/13f5f9cd1a0010b352323a9a14b9db55ad07b5e9/cpuid.go#L918\n\nAt which point, logical cores may as well also use the same module.\n\nBug: b/503568819\nChange-Id: I0af01a401eaed8eb9023d9e20211a75d6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7849664\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\n"
    },
    {
      "commit": "33020a9e500aa9d46d0631eda4aa78eb7480b813",
      "tree": "b269ccae590302c8d67b9313f0a199e1b4bf783b",
      "parents": [
        "f16edc75fca2d7b5415e00df0aa7be112270cd8a"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Mon May 18 05:32:58 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 18 05:32:58 2026"
      },
      "message": "siso: add logical cores to machine info log\n\nbased on runtimex which was removed in https://crrev.com/c/7838921\n\nother stats such as physical cores will be added in followup CL(s)\n\nBug: b/503568819\nChange-Id: I699f1570f0e03c461da9b1522141a42f6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7849676\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "f16edc75fca2d7b5415e00df0aa7be112270cd8a",
      "tree": "d5e9de6b133a68db416d810bf3904d7f2c74aeeb",
      "parents": [
        "84bc1f0c1c7bae325407543a5b7a1459b112989b"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Mon May 18 04:35:03 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 18 04:35:03 2026"
      },
      "message": "kajiya: add FuseFS sandbox strategy with FUSE-backed CAS filesystem\n\nAdd a new FuseFS sandbox strategy that mounts a FUSE filesystem for the\nlifetime of the Kajiya process and serves CAS files on demand as virtual\ndirectory trees. For each action, the input tree is registered as a\ndynamic subtree in the FUSE mount, with overlayfs mounted on top for\nwrite redirection.\n\nThe FUSE layer reports the Kajiya process UID/GID for nsjail\nuser-namespace compatibility, shares persistent go-fuse inodes across\nsandboxes so kernel caches are reused, keeps mount lifecycle behind\nfuseBackend, and creates output parent directories in the overlayfs\nupper layer because they are per-action and mutable.\n\nAdd a multi-sandbox benchmark that compares registering and reading\nthrough shared persistent inodes against rebuilding the FUSE inode tree\nfor each action.\n\nChange-Id: I2d45178945473e34c8c929d3717499e9250728c1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806066\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "84bc1f0c1c7bae325407543a5b7a1459b112989b",
      "tree": "7b8e1645273124e098e07c45eea4a37c95021616",
      "parents": [
        "342f4aa2aa10e9a35c68b527160b5d97b8d2102d"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Fri May 15 09:26:57 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 15 09:26:57 2026"
      },
      "message": "ui: fast path StripANSIEscapeCodes when no escape present\n\nLogUI.PrintLines and LogUI.{Printf,Infof,Warningf,Errorf} run every\noutput line through StripANSIEscapeCodes, which built a fresh\nstrings.Builder and copied each non-escape byte one at a time via\nWriteByte. Almost every line in a non-TTY siso run has zero escape\nsequences but we still paid for the full Builder build out and copy.\n\nAdd a fast path that returns the input unchanged when no \\033 byte\nexists, and for inputs that do contain escapes batch the plain runs\nthrough WriteString instead of WriteByte.\n\nBench (StripANSIEscapeCodes, n\u003d5):\n  No escape:    123.0 ns/op, 248 B/op, 5 allocs/op\n             -\u003e   3.1 ns/op,   0 B/op, 0 allocs/op  (~40x)\n  With escape:  138.9 ns/op, 248 B/op, 5 allocs/op\n             -\u003e  39.5 ns/op,  96 B/op, 1 allocs/op  (~3.5x)\n\nBench (android dry-run, N\u003d5 mean, baseline \u003d previous commit):\n  Wall median  8.29s to 7.33s\n  Peak RSS     18.3  to 17.2 GB\n  User CPU     67s   to 61.5s\n\nChange-Id: I0e28e23b46c6511ba34d5b02f85d2969b4597471\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806059\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "342f4aa2aa10e9a35c68b527160b5d97b8d2102d",
      "tree": "fa0fdf452ded13105ef636f98f8dfe7312eb34f2",
      "parents": [
        "f51fa0d5accecf8fb023c871a890e6c9503e8bb9"
      ],
      "author": {
        "name": "Yuke Liao",
        "email": "liaoyuke@google.com",
        "time": "Fri May 15 07:23:23 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 15 07:23:23 2026"
      },
      "message": "siso: strengthen dangling symlink regression tests\n\nTestBuild_SymlinkSourceDangling previously only asserted `if err \u003d\u003d\nnil`, which could mask a subprocess crash (`exit\u003d2` from a missing\nscript) as a successful scheduling rejection.\n\nThis CL updates TestBuild_SymlinkSourceDangling to explicitly verify\n`build.MissingSourceError` via `errors.As`.\n\nTest: go test ./...\nChange-Id: I584f01b044df16a9eeb0db025f7bf0ab10e55b98\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7831844\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "f51fa0d5accecf8fb023c871a890e6c9503e8bb9",
      "tree": "76f434ba061b02012a5c27796f13ec28b52f660b",
      "parents": [
        "05a9dcb38fd8db9303b6feeae6088c4f1d421462"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Fri May 15 07:02:46 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 15 07:02:46 2026"
      },
      "message": "siso/reapi: parallelize CAS upload RPCs\n\nBatchUpdateBlobs and ByteStream upload paths now dispatch through an\nerrgroup; concurrency is opt-in via reapi.Option.UploadConcurrency\n(default \u003d 1 \u003d serial, preserving siso ninja behavior). siso isolate\nsets max(32, GOMAXPROCS*4).\n\nBench (chromium isolate cold, 3 test targets, ~13 GB unique deps,\nn\u003d2, 500 Mbit link, 16 core workstation):\n\n  before:  4:32 / 4:33   RSS 1.6 GB   CPU 16%\n  after:   0:25 / 0:26   RSS 3.3 GB   CPU 145%\n\nBug: 273884978\nChange-Id: I4a5fd15a06b1899663be836aac8be0c5707af881\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7851117\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "05a9dcb38fd8db9303b6feeae6088c4f1d421462",
      "tree": "3182732bc7f453942e3bda67ab8ae4363a8395cc",
      "parents": [
        "9037cdbedefb4f64e1f8e8d6110e1961506668d2"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu May 14 09:35:32 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 09:35:32 2026"
      },
      "message": "siso: fix nsjail support for chromium\n\nchomium\u0027s action runs \"python3 ...\", but nsjail requires\nexec.LookPath.\n\npython3 is resolved to path in\ndepot_tools/bootstrap-2@3.11.8.chromium.35_bin/python3/bin\nas depot_tools/python3 add this to head of PATH,\nbut this is not accessible in nsjail sandbox.\nTo access this, introduce SISO_NSJAIL_PUBLIC_DIRS environment\nvariables to allow access depot_tools dir, e.g.\n\n $ SISO_NSJAIL_PUBLIC_DIRS\u003d~/depot_tools siso ninja ...\n\n(probably want to set this env var in depot_tools/siso.py?)\n\nFix permission of nsjail.config file. no need to be executable\n\nchromium side: https://crrev.com/c/7806864\n\nBug: b/508100400\nChange-Id: I3c00c82f6ce89404eaab76217c7b32ac8791debf\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806560\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "9037cdbedefb4f64e1f8e8d6110e1961506668d2",
      "tree": "0c2284bd0786b6ff3f52cca17831988fbc584928",
      "parents": [
        "cbeef9599fca896108fb48403ff827bc2c1a93c2"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu May 14 09:16:51 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 09:16:51 2026"
      },
      "message": "siso: fix panic close of nil channel of termSpinner.\n\ntermSpinner is not concurrent safe, so if check manifest failed,\nspinner has not started, but Stop is called and cause\npanic close of nil channel.\n\nuse spinner in main goroutine when loading manifest.\n\nBug: b/513083521\nChange-Id: If8de7fd05c59f247143aba9a093ebabe67581b91\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7848913\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\n"
    },
    {
      "commit": "cbeef9599fca896108fb48403ff827bc2c1a93c2",
      "tree": "1c5f3c02a7b3982a279fe99277761e76c8486617",
      "parents": [
        "0d613517c08f820cfd2ff51108da12ec8988655f"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Thu May 14 08:14:43 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 08:14:43 2026"
      },
      "message": "siso: fix TestDirectoryLookup failure on macOS\n\nInitialize root directory instances in tests with isRoot: true to match\nproduction behavior and allow absolute symlink resolution at the root.\nAlso evaluate symlinks in TempDir to eliminate symlink resolution\nallocations during zero-allocation lookup tests.\n\nChange-Id: Ife41e26ccf1a1319288349c1fe65d8ecfde266c6\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7848453\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "0d613517c08f820cfd2ff51108da12ec8988655f",
      "tree": "34665177b6da6e3ae4cbec75b4f99b2f962719ad",
      "parents": [
        "c02eac2ff20c1fedb0cd6bb6d059bea0925a67cc"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Thu May 14 06:38:40 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 06:38:40 2026"
      },
      "message": "merkletree: pool MerkleTree to reuse map storage across build steps\n\nEvery build step creates a MerkleTree, allocating a fresh map\neach time. Add NewPooled/Release so the map backing storage is\nreused across steps via sync.Pool.\n\nUpdate callers in execute/cmd.go, build/tree_input.go, and\nbuild/builder.go to use the pooled variant.\n\nChrome build profile: -830 MB alloc_space (merkletree.setDir).\n\nChange-Id: Ic39c77e28ffa9fc6b49b305b2d410f0c46504498\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7754841\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "c02eac2ff20c1fedb0cd6bb6d059bea0925a67cc",
      "tree": "b4a7107bfe4c8d5329d64646f2567139204b15eb",
      "parents": [
        "e4a69837c2b426700ca7669a29b829b495b5e8c3"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Thu May 14 06:37:44 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 06:37:44 2026"
      },
      "message": "hashfs/osfs: gate xattr digest probe on OnCog/OnArtFS\n\nFileDigestFromXattr issues lgetxattr for a configured digest xattr\n(default google.digest.sha256) before falling back to full-read hash\ncomputation. Only Cog and ArtFS populate that xattr. On every other\nfilesystem the probe returns ENODATA once per file access and is pure\noverhead; a chrome build on plain ext4 logged ~178k such probes.\n\nBench (chrome cache-warm, full strategy, single run + bpftrace):\n  lgetxattr  178k -\u003e 0 on non-Cog/ArtFS filesystems\n\nBug: 505555536\nChange-Id: Ieeeda6e19a707dbbd287e5acb46c5d52d9e41569\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7775588\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "e4a69837c2b426700ca7669a29b829b495b5e8c3",
      "tree": "5e682412b3cac208add3d97cfa306f4a91a3233f",
      "parents": [
        "fa9eec506d7e919fef303ecc715a618a0f781b26"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Thu May 14 06:33:41 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 06:33:41 2026"
      },
      "message": "hashfs/osfs: gate cog utimes workaround on OnCog\n\nThe Chtimes implementation issued an unconditional os.Stat before every\nos.Chtimes as a workaround for b/356987531 (cog utimes bug). On a real\nChrome base build this fires once per output flush, ~7.4k stats per run.\nIt is only needed when the exec root lives on the Cog filesystem; on\nevery other host it is dead weight.\n\nPropagate opt.CogFS !\u003d nil into OSFS via a new OnCog option and gate\nthe workaround stat behind it.\n\nBug: 505555536\nChange-Id: Iee9c537d3f047981cc826452ff0f56a39f59fa85\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7775769\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "fa9eec506d7e919fef303ecc715a618a0f781b26",
      "tree": "77a2658ab6370020ae9a6d1bed1878fd9d1682f2",
      "parents": [
        "931d57c200bd16dc35bf6fdc024f56b898afd758"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Thu May 14 02:11:27 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 02:11:27 2026"
      },
      "message": "kajiya: add memory, mutex, block, and trace profiling flags\n\nMirrors the profiling controls in siso. Adds -memprofile (with optional\nperiodic rolling dumps via -memprofile_interval and a -memprofile_gc\ntoggle), -mutexprofile, -blockprofile, -blockprof_rate, -mutexprof_frac,\nand -trace. Each profiler closes its file on exit and reports a non-zero\nreturn code if the file can\u0027t be created.\n\nChange-Id: Ia0f2f22a3ae4593983d495a6bdf99d426574788d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838927\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "931d57c200bd16dc35bf6fdc024f56b898afd758",
      "tree": "422d4645b99e2678a02896627719d65f401c7fc7",
      "parents": [
        "2b09e24d56a8e55bcd7fbb7fffc0d801aadd2759"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Thu May 14 02:11:22 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 02:11:22 2026"
      },
      "message": "kajiya: only fetch container image when one is specified\n\nSkip the FetchImage call when ContainerImage is empty, allowing actions\nto run without a container image. Since this causes nsjail to chroot to\n\"/\", exposing the host filesystem, gate the behavior behind a new\n--allow_host_fs flag.\n\nChange-Id: If6023e42e884aac814642d8dcc778f731f6d5d4b\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806065\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "2b09e24d56a8e55bcd7fbb7fffc0d801aadd2759",
      "tree": "e51eebae83858095c5f019600f1eb58919847efe",
      "parents": [
        "3267f29be9b96bf8690930672285e47e88f3fb3c"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Thu May 14 02:11:16 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 02:11:16 2026"
      },
      "message": "kajiya: add --skip_cas_validation flag for faster startup\n\nAdd a --skip_cas_validation flag that skips CAS integrity validation on\nstartup. This is useful for faster startup when the CAS is known to be\nin a good state.\n\nChange-Id: I968d1fdb248d75e0d8211c00240f0fdb68d7b178\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7725311\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "3267f29be9b96bf8690930672285e47e88f3fb3c",
      "tree": "80140677cdd20d126f8e0fd4044a851d1c35b2d0",
      "parents": [
        "7782146cbcf712380c43e188f7119723a0bf246e"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Thu May 14 02:07:21 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 02:07:21 2026"
      },
      "message": "kajiya: fix edge cases in UploadOutputs error handling\n\nSuppress the \"ignoring missing output\" log for clang-crashreports, which\nis almost never present and creates unnecessary noise.\n\nFix two error leaks in UploadOutputs where handled errors (ErrNotExist\nfor missing outputs, and errors from dangling symlinks) were not cleared\nbefore continue, causing the named return to propagate them.\n\nChange-Id: I515aa84198d1415b2cde38c85fa6235eeb43e7da\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7725312\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "7782146cbcf712380c43e188f7119723a0bf246e",
      "tree": "7654d4261dcb95dd0529a5b7d1e4764a572402b3",
      "parents": [
        "3859a5f382ee44813914773e56c07321f21843d2"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Thu May 14 01:57:59 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 01:57:59 2026"
      },
      "message": "kajiya: key root directory in input trie with empty string\n\nThe input-root trie previously seeded the root DirectoryNode with\nName\u003d\"./\", and treeToTrie inserted it as `dirNode.Name + \"/\"`. That\nproduced the trie key \".//\" for the root, so:\n\n- WorkingDir validation looked up \"./\" (for the default WorkingDir\u003d\".\")\n  and missed the \".//\" entry, rejecting any action that did not set\n  Command.WorkingDirectory.\n- addOutputsToTrie\u0027s LongestPrefix could not resolve a parent for\n  root-level output paths, but the returned error was discarded by\n  LoadAction, so outputs were silently dropped.\n\nSwitch to an unambiguous invariant: the root directory is keyed with\nthe empty string, and every other directory key carries a trailing\nslash. The empty key acts as the universal LongestPrefix match, so\nroot-level outputs resolve to the root entry without special cases.\n\naddOutputsToTrie now requires a successful LongestPrefix match and only\nenforces the trailing-slash sanity check for non-root parent keys, and\nLoadAction propagates every addOutputsToTrie error.\n\nAdds tests for the default WorkingDir, root-level outputs, nested\noutputs under root, outputs under an existing input subdir, and\nverifying that addOutputsToTrie errors propagate.\n\nChange-Id: I5aafafc95fbb5d03f976803f8806ccaf0e73251a\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7805669\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "3859a5f382ee44813914773e56c07321f21843d2",
      "tree": "59665b00bc0b57ba5b5c71db6b90f27ffac8509c",
      "parents": [
        "e1fc2427cc8141e11591a466d5823dddd4c72e13"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu May 14 01:43:26 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 01:43:26 2026"
      },
      "message": "siso: measure resource usage in semaphore\n\nresource usage was measured via trace span for semaphore,\nbut trace span would need lots of memory,\nso measure in semaphore directly, so we can get resource\nusage even if we disable trace in android soong.\n\nbefore: 38223MB maxrss\nafter:  38314MB maxrss\n\nChange-Id: I1c74af74a52824b52c3a3dac3b8e0337ae7cc3cd\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7839339\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "e1fc2427cc8141e11591a466d5823dddd4c72e13",
      "tree": "7b4bd97b49dadc708f6c2aa7d3cceca7be2602ed",
      "parents": [
        "b895bf29a7197e2fe261aa1f84b448dbfabc6447"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu May 14 00:42:20 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 00:42:20 2026"
      },
      "message": "siso: check action_cache_update_capabilities\n\nfail if --re_cache_enable_write specified but reapi doesn\u0027t support UpdateActionResult\n\nBug: b/506882659\nChange-Id: Id8ffadd1476a070a32834b80394b69d76899bf6e\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7839991\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "b895bf29a7197e2fe261aa1f84b448dbfabc6447",
      "tree": "3ce4b331c8e2b3661340cb81e57b558903395641",
      "parents": [
        "a511361566b0615f729dab159628d4971d794a03"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Wed May 13 21:50:17 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 21:50:17 2026"
      },
      "message": "siso: don\u0027t run spinner during regenerating ninja\n\nBug: b/508462696\nChange-Id: I2acf86924333936913c82aa823a6ee35f56edc08\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7844132\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "a511361566b0615f729dab159628d4971d794a03",
      "tree": "7691eabb0d9f6b456e42dd4f2521b720bfcb900f",
      "parents": [
        "85bcc3227975c64f715b441b4a45850a38cafddb"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed May 13 06:58:39 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 06:58:39 2026"
      },
      "message": "kajiya: fix startup failing with EEXIST\n\nThe code that cleaned up dangling temporary files in the CAS didn\u0027t remove the directory itself, so when os.Mkdir would try to create it afterwards, it would already exist, causing Kajiya to fail with EEXIST on startup.\n\nChange-Id: Ia4ba15f569d0735d72f73719fe23e8a059718101\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806068\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "85bcc3227975c64f715b441b4a45850a38cafddb",
      "tree": "0928ee483234c0b4e7b3bd8bc448bcd47cff0386",
      "parents": [
        "bad1e81981b2ccf690ddf42ec325c284cf8ccbfb"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed May 13 05:53:08 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 05:53:08 2026"
      },
      "message": "kajiya: Bump go.mod dependencies\n\nChange-Id: I99bde5c1478bf76c2b4f40f3b31e5839e517e85d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838937\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "bad1e81981b2ccf690ddf42ec325c284cf8ccbfb",
      "tree": "648ee13d76c2d6db1233f473f01b215a64d0def7",
      "parents": [
        "bdd68cc27b96b5b23d279a5adc936078ed58c3c9"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed May 13 05:29:19 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 05:29:19 2026"
      },
      "message": "siso: add periodic heap profile dumping\n\n-memprofile_interval N triggers a heap profile dump every N to rolling\nfiles derived from -memprofile (e.g. \"siso-memory.0001.pprof\"); useful\nfor catching peak heap behavior that the existing end-of-build snapshot\nmisses. -memprofile_gc (default true) controls whether runtime.GC()\nruns before each dump, matching the prior one-shot behavior but letting\nbenchmarks turn it off to avoid perturbing the run.\n\nChange-Id: I45ed4b534c754661be307d05f4776477f7619835\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838922\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "bdd68cc27b96b5b23d279a5adc936078ed58c3c9",
      "tree": "cb3f636c1542601ee06271d4899e5ca4304c825c",
      "parents": [
        "c85386c9513476a785d90eacd57680e0357d6f8c"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed May 13 05:24:23 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 05:24:23 2026"
      },
      "message": "siso: close profile files and GC before heap profile\n\nFix file descriptor leaks for cpuprofile and memprofile, and call\nruntime.GC() before WriteHeapProfile for an accurate heap snapshot.\n\nChange-Id: Ic0ad4031480a3c5b18932cb9ae802fdaf705212c\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7805953\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "c85386c9513476a785d90eacd57680e0357d6f8c",
      "tree": "7bbb2b49c4dae3262c1821125c9cbddb87c6d283",
      "parents": [
        "66a3fed7cda5d770024a337fb3bc03da32652987"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed May 13 05:14:34 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 05:14:34 2026"
      },
      "message": "siso: replace runtimex.NumCPU() with runtime.GOMAXPROCS(0)\n\nUse runtime.GOMAXPROCS(0) instead, which reflects the parallelism\nactually available to the process (honoring CPU affinity, cgroup\nlimits, and explicit GOMAXPROCS overrides) rather than the raw\nmachine CPU count.\n\nChange-Id: I3837805faf9a588e6fda1b7adf95ed5763e42efa\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838921\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "66a3fed7cda5d770024a337fb3bc03da32652987",
      "tree": "5859fbaae8a8dac1f965019f7b6e973ec8840226",
      "parents": [
        "260fdab64b8e942d1cbdbc89a512311fbf1a080e"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed May 13 05:14:29 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 05:14:29 2026"
      },
      "message": "siso: Bump go.mod dependencies\n\nChange-Id: I7c620538eca2ce4f5964a16bb068e3971f14aff1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838936\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "260fdab64b8e942d1cbdbc89a512311fbf1a080e",
      "tree": "9f165e4794ae6b45fee4ab061daa0f530924e335",
      "parents": [
        "b7c1fc436a977a0689b3069021de358ff1142078"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Wed May 13 02:44:22 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 02:44:22 2026"
      },
      "message": "siso: add reapi WalkDir\n\nWalkDir uses reapi GetTree to retrieve all directories\nrooted identified by a digest.\n\nIt will be used to check if input files match with workspace\nfor two phase caching.\n\nBug: b/506882659\nChange-Id: Ie7f3e55631e6c3db0dff29f4ffd9c9ebdc6a21ba\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7792706\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "b7c1fc436a977a0689b3069021de358ff1142078",
      "tree": "54aabae92cff606fb6ef509e19fa70fcab66f164",
      "parents": [
        "fe1c182d6f1d554d84e998ac7b6979d853d1751e"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue May 12 22:23:21 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 12 22:23:21 2026"
      },
      "message": "Require all depfile deps be regular deps\n\n...For sandboxed actions.\n\nCurrently, if you run a build without sandboxing, and\nit records deps from the depfile, then rerun the build\nwith sandboxing, the build may pass, but if you were to\nrun it with sandboxing from the start, it would fail.\nThis is because the depfile-discovered dependencies are\nadded to the sandbox on the subsequent build, even if\nthey\u0027re not listed in the ninja file.\n\nWith this check, essentially the only use for depfiles\nis for promoting order-only deps to regular implicit deps.\n\nBug: 475013705\nChange-Id: I9728a1c99fa9df095509e08e9f9e832dda9be496\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7830283\nCommit-Queue: Cole Faust \u003ccolefaust@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "fe1c182d6f1d554d84e998ac7b6979d853d1751e",
      "tree": "1730a964b334275ec4a09a86b08f061adda6b1d2",
      "parents": [
        "f7dbc2ab69c84e77a9602e5bb5c6e16f0bff3502"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Tue May 12 10:06:18 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 12 10:06:18 2026"
      },
      "message": "roll google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 \u003d\u003e v1.6.2\n\nhttps://github.com/grpc/grpc-go/releases/tag/cmd/protoc-gen-go-grpc/v1.6.2\n\nChange-Id: Iab78bae54182e65751d363cf3c24a5dc4722d678\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7838920\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "f7dbc2ab69c84e77a9602e5bb5c6e16f0bff3502",
      "tree": "5ca2d0314716a91faa47dbe58a289096db17e341",
      "parents": [
        "b33233020bdc27f947f2436125b1f9ed7b54b06c"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Tue May 12 05:24:36 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 12 05:24:36 2026"
      },
      "message": "[go] update toolchain go 1.26.2 -\u003e 1.26.3\n\nhttps://groups.google.com/g/golang-announce/c/qcCIEXso47M\n\nChange-Id: Iee7e7e16192509ea6ae15fd33189ed426c575e1b\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7839239\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\n"
    },
    {
      "commit": "b33233020bdc27f947f2436125b1f9ed7b54b06c",
      "tree": "37e6f9b83675ef8d730b576114c3794deb6a7f37",
      "parents": [
        "ee6882bc85203c7804f338601afb06719d7c0cde"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Tue May 12 02:53:33 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 12 02:53:33 2026"
      },
      "message": "siso: update version string to v1.5.14\n\nv1.5.13 has been rolled out as pinned version at\ngit_revision:e82794032885e80beead7f130c4c5c43cb99486b\nhttps://crrev.com/c/7838618\nhttp://ag/39871511\n\nBug: b/506004380\nChange-Id: Idd51bc0dd7c678be91ce389293a14f5ca37fe738\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7832248\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "ee6882bc85203c7804f338601afb06719d7c0cde",
      "tree": "766485f23d171aa4f380d48ee8c771112cc0e8df",
      "parents": [
        "e82794032885e80beead7f130c4c5c43cb99486b"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue May 12 01:51:15 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 12 01:51:15 2026"
      },
      "message": "siso: Enumerate phony inputs via TriggerInputs()\n\nWhen scanning include directories (scandeps), Siso calculates base inputs\nby invoking DepsBaseInputs(), which iterates over s.edge.TriggerInputs()\n(meaning explicit and implicit dependencies, but ignoring order-only\ndependencies). However, Siso\u0027s replacePhony() implementation incorrectly\nused edge.Inputs(), which also included order-only dependencies.\n\nThis caused problems when landing the GN change\nhttps://gn-review.googlesource.com/22000 which moved input dependencies\nfrom being order-only on the rule to being order-only on the phony input,\nas now a large tree of inputs are uploaded to the remote server, including\nthe previously order-only input dependencies on the rule, which would\nsometimes cause the remote action to fail due to exceeding a limit.\n\nFix it by using TriggerInputs() in replacePhony(), so that order-only\ndependencies are consistently handled between the rule and any phony\ndependencies.\n\nBug: 40643484\nChange-Id: I93977485a0f9a46b3b0d7ae8816a03781704e66a\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7836134\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nAuto-Submit: Peter Collingbourne \u003cpcc@chromium.org\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\n"
    },
    {
      "commit": "e82794032885e80beead7f130c4c5c43cb99486b",
      "tree": "883317397ad56922b90d5860cb191a12369558cf",
      "parents": [
        "f7d058aabde39f69455205ca16265f860894821f"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Mon May 11 08:38:28 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 11 08:38:28 2026"
      },
      "message": "Revert \"siso: remove unused fixForSplitDwarf\"\n\nThis reverts commit d89b7d658a5049cf8067ef949a98928c5d1978f1.\n\nReason for revert: We still need to have this logic due to revert in\nhttps://crrev.com/c/7805627.\n\nOriginal change\u0027s description:\n\u003e siso: remove unused fixForSplitDwarf\n\u003e\n\u003e This is not necessary after https://crrev.com/c/7784851.\n\u003e\n\u003e Bug: 502431091\n\u003e Change-Id: Ib54ef613bf92f7c5e38d8a7fe21b100b536836c5\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/build/+/7806105\n\u003e Reviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\n\u003e Auto-Submit: Takuto Ikuta \u003ctikuta@chromium.org\u003e\n\u003e Commit-Queue: Junji Watanabe \u003cjwata@google.com\u003e\n\nBug: 502431091, 511878434\nChange-Id: I61835e69c75e56aeeb5f41a68251935d05196e69\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806005\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "f7d058aabde39f69455205ca16265f860894821f",
      "tree": "815133f63eb726b7d80105b208911bce457bdedb",
      "parents": [
        "d0bb057e5527fff62fb823c904054395242c6339"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Mon May 11 06:01:00 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 11 06:01:00 2026"
      },
      "message": "build: show sub-build progress again\n\nOn long gn gen runs, notably on Windows, users want to see\nprogress while the manifest is being regenerated.\n\nBug: 508462696\nChange-Id: I59c576ceac0dbc2e5c782950e778d21be8d74a13\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7828564\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "d0bb057e5527fff62fb823c904054395242c6339",
      "tree": "d4143d6351d65b72ac787530aa39eeba593da325",
      "parents": [
        "0c4754add8e65548d413d47c39e640069f1fc5ee"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Mon May 11 04:56:39 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 11 04:56:39 2026"
      },
      "message": "ninja: free ~half of build manifest after graph build to reduce RSS\n\nreadFile maps .ninja files into the page cache instead of the Go heap.\nDuring parse, every Edge env buf, binding name, and evalString value\nis copied into per-chunk bump allocators so the parsed graph owns its\nbytes. State.Close munmaps the pinned manifest buffers after\nninjabuild.NewGraph, releasing the manifest pages for the rest of the\nbuild. Load and LoadSingle release pinned mappings on parse failure.\n\nBench (android dry-run, N\u003d10 mean, on commit 323167d3):\n  Peak RSS         28.4 GiB to 21.5 GiB  (-6.9 GiB, -24%)\n  Wall             10.88 s  to  9.26 s   (-1.6 s, -15%)\n  Go heap          10.9 GiB to  6.3 GiB\n  HeapObjects      8.41M    to  8.46M    (no regression)\n\nOutput verified bit-identical to HEAD on chrome cache-warm: 139819 of\n139819 output file hashes match across back-to-back rebuilds with\nboth binaries.\n\nChange-Id: I0119e911bd4ca45989d6292fbca1301f214a35f1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806056\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "0c4754add8e65548d413d47c39e640069f1fc5ee",
      "tree": "b6930ec769e290956c92341dab43c4db10e4cda6",
      "parents": [
        "396b52b9165809f6ac4e12ef1be9c1b08f4d62fe"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Fri May 08 02:26:09 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 08 02:26:09 2026"
      },
      "message": "siso: no fallback on Unauthenticated\n\nIt\u0027s better to fail early when it gets Unauthenticated error,\nas user needs to fix auth issue.\n\nBug: b/510946679\nChange-Id: I4bc9b9380ae11c8c16b6245d433f6acc8e03e1d3\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7831903\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "396b52b9165809f6ac4e12ef1be9c1b08f4d62fe",
      "tree": "ef7896b6e3404e054ae5e96aec15dbf7cddf30fa",
      "parents": [
        "641f2328f0ad93677a3754329db1090eaf1644b8"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu May 07 01:40:58 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 07 01:40:58 2026"
      },
      "message": "roll google.golang.org/grpc v1.80.0 \u003d\u003e v1.81.0\n\nhttps://github.com/grpc/grpc-go/releases/tag/v1.81.0\n\nChange-Id: Iea96f9d4e121ae5a8857f0edd016da7863f65bd4\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7825270\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "641f2328f0ad93677a3754329db1090eaf1644b8",
      "tree": "fd35bc15b4d21ccd25b454c126761852e58c7f6f",
      "parents": [
        "85862693fddc35722b0c63dcd7e3227d12bdf724"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Wed May 06 23:56:05 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 06 23:56:05 2026"
      },
      "message": "Add GetReader to REAPI Client\n\nRather than buffering large REAPI artifacts in memory, write them\ndirectly to disk.\n\nChange-Id: I46ae8af6e1db04c3b8e42f76a53c2eea32b0cf00\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7822738\nReviewed-by: Cole Faust \u003ccolefaust@google.com\u003e\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\n"
    },
    {
      "commit": "85862693fddc35722b0c63dcd7e3227d12bdf724",
      "tree": "f163b1c12f832ac138d2991bf7e3a3dc4b06b467",
      "parents": [
        "09e275b4b076e49e87b96c5dee9f347cdc09c55d"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Wed May 06 23:53:43 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 06 23:53:43 2026"
      },
      "message": "Only trace when enabled\n\nOnly do tracing when we will be writing the trace file to disk.\nThere are two on-by-default options that require tracing:\n- -trace_json (`siso_trace.json`)\n- -build_pprof (`siso_build.pprof`)\n\nIf both of these are set to the empty string, then Siso will not\ncollect traces.\n\nChange-Id: I745016a36647709574f76c168d53d5c7f8090eb1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7822737\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\nReviewed-by: Cole Faust \u003ccolefaust@google.com\u003e\n"
    },
    {
      "commit": "09e275b4b076e49e87b96c5dee9f347cdc09c55d",
      "tree": "3b8ee8849a494585f206739b4a54a05f7e581073",
      "parents": [
        "204b5f259873d0d7613f9f71cc859d96b7e89c55"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Tue May 05 02:11:20 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 02:11:20 2026"
      },
      "message": "o11y/trace: cut (*Span).data alloc 5.1x\n\n(*Span).data unconditionally allocated a map[string]any per call. Most\nspans only carry tid, so hoist it to a typed int field with a hasTid\nbool (tid 0 is a real worker id), and skip the map allocation when\ns.attrs is empty. SetTid replaces SetAttr(\"tid\", ...) at the 5\nproducer sites. SpanData gains a matching HasTid so Add can\ndistinguish unset tid from worker 0.\n\nchrome cache-warm (2 runs each):\n\n                              parent (323167d)   this (b810a5f)   delta\n  (*Span).data alloc            4.32 GB           0.85 GB         -3.47 GB (5.1x)\n  (*Span).data alloc_objects    37.6 M            5.35 M          -32.2 M  (7.0x)\n\nandroid (2 benchmarks): trace.(*Span).data alloc_space 40 to 3 GB\n(~92% reduction).\n\nChange-Id: I5eb58637a25f177e682d392c1bb2002a1118de11\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7805574\nAuto-Submit: Neri Marschik \u003cnerima@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "204b5f259873d0d7613f9f71cc859d96b7e89c55",
      "tree": "5cafb3e2bd9aeb49c56c7f10e5a14179ff11b858",
      "parents": [
        "323167d316f6758f5fe45db2af92042df3d26def"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Sat May 02 10:56:45 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat May 02 10:56:45 2026"
      },
      "message": "reapi: cut zstd decoder peak memory in half\n\nThe shared zstd decoder pool was the dominant peak-RSS contributor on\nlarge builds: every concurrent ByteStream read held a decoder mid-frame\nwith its window-sized internal buffer pinned, and pool peak grew with\nin-flight RPC count.\n\nSplit newDecoder into two paths based on a 128 KiB compressed probe:\n\n  - Blobs that fit in the probe go to klauspost\u0027s sync DecodeAll\n    short-circuit. The decoder returns to the pool immediately,\n    so the steady-state pool population tracks the small fraction\n    of in-flight large blobs instead of total in-flight reads.\n\n  - Blobs that overflow the probe stream through io.MultiReader.\n    Streaming decoders for blobs at or above 4 MiB decompressed are\n    dropped on Close rather than pooled, so a window-sized buffer\n    retained by a streamed frame can\u0027t end up back in the pool.\n\nPool decoders are also reconfigured: WithDecoderConcurrency(1) drops\nthe per-decoder GOMAXPROCS worker fanout (siso\u0027s outer parallelism\nalready saturates cores), and WithDecodeBuffersBelow(probeSize+1)\nlocks the sync threshold to the probe size regardless of klauspost\ndefaults.\n\nChange-Id: I718037befe634ef36ad566be324f7d3ac8dcf79d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806047\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "323167d316f6758f5fe45db2af92042df3d26def",
      "tree": "73be98a8c2ec53a42fdb3795b5579e2b2e8c7846",
      "parents": [
        "658efeb2aa68fe8698030a540ceb48ac9b708eb8"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Fri May 01 03:56:10 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 01 03:56:10 2026"
      },
      "message": "siso: save .siso_fs_state if it doesn\u0027t exist even if clean\n\nBug: b/508422329\nChange-Id: I6ee4ae12846c869a6d714eb95ffea0360f1d5dbc\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7807946\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Junji Watanabe \u003cjwata@google.com\u003e\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\n"
    },
    {
      "commit": "658efeb2aa68fe8698030a540ceb48ac9b708eb8",
      "tree": "368d49b61b02019692aabe161dc220f59d9ed28d",
      "parents": [
        "b600cbb3558febbcaf33355a689244edc65bbf11"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Fri May 01 01:28:41 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 01 01:28:41 2026"
      },
      "message": "roll github.com/klauspost/compress v1.18.5 \u003d\u003e v1.18.6\n\nhttps://github.com/klauspost/compress/releases/tag/v1.18.6\n\nChange-Id: Idc4eec95384f621b9e39cdcf633331ffbb1f6a48\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806408\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "b600cbb3558febbcaf33355a689244edc65bbf11",
      "tree": "fa4e860941740f698f4f25eebe46a3c87b730218",
      "parents": [
        "d89b7d658a5049cf8067ef949a98928c5d1978f1"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Thu Apr 30 07:55:12 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 30 07:55:12 2026"
      },
      "message": "siso: Update actionStarted logic and add scandeps/cache metrics\n\nWhen reporting step metrics to Soong:\n- Start time is when the build action execution started. In the case of\n  a cache hit, it is when the cache lookup started.\n- End time is when the build action execution finished (and outputs are\n  in place.)\n\nTo accomplish this:\n- In step metrics, split out timing information for scandeps and cache\n  lookups.\n- Ensure that BuildActionStarted only runs once per step, even when\n  racing. When racing, the first one to start determines the start\n  time, and the first one to finish determines the end time.\n- Only call BuildActionStarted when we begin execution of the build\n  command, or we are processing a cache hit.\n- For cache hits, include the time needed to move outputs into place as\n  part of the step execution time\n- For local builds, include the time needed to otherwise record the\n  completion as part of the step execution time.\n\nChange-Id: Ia97e4febd464249c4f836a8df3d99f02bd2d2bc1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7790219\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\nReviewed-by: Cole Faust \u003ccolefaust@google.com\u003e\n"
    },
    {
      "commit": "d89b7d658a5049cf8067ef949a98928c5d1978f1",
      "tree": "7193283204117bcd74235f9b9a58a8f7e0b0871c",
      "parents": [
        "8fc866a4502f7ac893ce245eb44e75a0553dc7ed"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Thu Apr 30 05:18:34 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 30 05:18:34 2026"
      },
      "message": "siso: remove unused fixForSplitDwarf\n\nThis is not necessary after https://crrev.com/c/7784851.\n\nBug: 502431091\nChange-Id: Ib54ef613bf92f7c5e38d8a7fe21b100b536836c5\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806105\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\nAuto-Submit: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Junji Watanabe \u003cjwata@google.com\u003e\n"
    },
    {
      "commit": "8fc866a4502f7ac893ce245eb44e75a0553dc7ed",
      "tree": "108eccfd7c128962f43534b586896dc5d8d84c68",
      "parents": [
        "1bf61749773bf89d2cbb1b7351e6ca4c9c7b4ced"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Thu Apr 30 05:10:43 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 30 05:10:43 2026"
      },
      "message": "siso: pass NinjaLogWriter from CheckManifest to main thread\n\nWhen `CheckManifest` is executed asynchronously (in goroutine) during\nloading, it opens the `.ninja_log` file via `initNinjaLogWriter` and\nwrites the `build.ninja` generation steps.\n\nHowever, because the main thread initializes a separate `bopts` instance\nlater, its `bopts.NinjaLogWriter` remains nil. When the main thread\nproceeds to `Run`, it calls `initNinjaLogWriter` again, which opens the\nsame `.ninja_log` file with `O_TRUNC`, truncating the log and deleting\nthe previously recorded steps.\n\nTo fix this issue, this commit stores the `NinjaLogWriter` created\nduring the `CheckManifest` phase and hands it over to the main thread\u0027s\n`bopts`. This prevents a second truncation and ensures the log entries\nare properly preserved and closed.\n\nThis is fix for behavior change in https://crrev.com/c/7760687.\n\nBug: 508034370\nChange-Id: I2a2186864209e50dec6f5e8327991858028bef2d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7806104\nAuto-Submit: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "1bf61749773bf89d2cbb1b7351e6ca4c9c7b4ced",
      "tree": "6dc94d7711d3f45264feb3a007e1651883faa550",
      "parents": [
        "39988aa535169cf254393bb80a339542327b3151"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu Apr 30 04:55:46 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 30 04:55:46 2026"
      },
      "message": "siso: don\u0027t keep opening failure summary writer\n\nrecipe will remove failure summary file when step raised an exception,\nbut if siso keeps opening failure summary writer,\nremove will fail with\n PermissionError: [WinError 32] The process cannot access the file because it is being used by another process:\nand recipe crash (uncaught exception).\n\nTo mitigate this, append failure message when writing,\nrather than keeping *os.File during the siso lifetime.\n\nBug: b/506222555\nChange-Id: Iaa974353437a2df4dbfc488e1509061bb80eb5f1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7805525\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "39988aa535169cf254393bb80a339542327b3151",
      "tree": "f0a1101f75ddb74ddf2c550485d45a6b96a7a757",
      "parents": [
        "1680d567ee6470985c789be0eaea67eaa1cae774"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed Apr 29 19:46:32 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 29 19:46:32 2026"
      },
      "message": "build: Add Android Build Team to OWNERS\n\nCole and LaMont are working on integrating Siso into the Android build\nand might sometimes need the ability to make changes to Siso when no one\nfrom the Japan team is available.\n\nChange-Id: I69431c360f9dcd65c19b1ffa2b8ce2642f1e4877\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7800816\nReviewed-by: LaMont Jones \u003clamontjones@chromium.org\u003e\nCommit-Queue: LaMont Jones \u003clamontjones@chromium.org\u003e\n"
    },
    {
      "commit": "1680d567ee6470985c789be0eaea67eaa1cae774",
      "tree": "7badadd827d9bc2e2ad999c526c3268007a87d4a",
      "parents": [
        "4b0168a54a24bc285a1768d742b58a36e67d08b5"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Tue Apr 28 06:30:32 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 28 06:30:32 2026"
      },
      "message": "siso: log total memory as part of machine info\n\nBug: b/503568819\nChange-Id: I6067b459c5948fca0b66e3374f5764a56a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7784331\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "4b0168a54a24bc285a1768d742b58a36e67d08b5",
      "tree": "ef591888f5bb08018e072a70c03a23a2bc6d8661",
      "parents": [
        "74b5669a9da6a68987dc2f75e0c2fd7835e1ccdb"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Mon Apr 27 06:32:50 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Apr 27 06:32:50 2026"
      },
      "message": "siso: add doc re adding go deps\n\nChange-Id: I83537df93c05afd5ad092781864822706a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7792504\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "74b5669a9da6a68987dc2f75e0c2fd7835e1ccdb",
      "tree": "2b7ca448a4647acd709aaa6c1f9bb31340715360",
      "parents": [
        "9e3b59c228a16c7bbfc8bbe826b7ea141c54f3d3"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Mon Apr 27 03:18:30 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Apr 27 03:18:30 2026"
      },
      "message": "siso: don\u0027t make infra failure if it was execute exit error\n\ne.g.\nhttps://ci.chromium.org/ui/p/infra/builders/codesearch/codesearch-gen-chromium-linux/21226/overview\nit was marked as infra failure by too many local fallback, but actual error was\n\n remote-exec 74f6b29a04a6cde23e86d36de52f678f19e8bde7a4c4cce52a0e84b15f26d66d/147 fallback 4 exceeds limit 4: exit\u003d1\n\n https://issuetracker.google.com/461609630 generate_bindings fallback: missing executable for format command\n\nbetter not to mark as infra failure, but mark to build failure\nas it would be an issue in build graph or siso config, not infra.\n\nBug: b/506053738, b/503546538, b/461609630,\nChange-Id: Ib5958ebab3f2bcf9d055cdeb4f31aa6a295f0a53\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7790595\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "9e3b59c228a16c7bbfc8bbe826b7ea141c54f3d3",
      "tree": "e42e6b7c63a7e7e1b234c824d4618c447d2b24b1",
      "parents": [
        "385bd08ffce5592c952a82dc312e08b0eb83e0c1"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Fri Apr 24 09:48:47 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 09:48:47 2026"
      },
      "message": "siso: update version string to v1.5.13\n\nv1.5.12 has been rolled out as pinned version at\ngit_revision:8629cde6728d25cde0f6fc1e6ae6b5886e0ebe41\nhttps://crrev.com/c/7792558\n\nBug: 505519458\nChange-Id: Ia449d51864f204d1f14f4a193d5e363181020ff2\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7792258\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "385bd08ffce5592c952a82dc312e08b0eb83e0c1",
      "tree": "b6893541da3325cdc3c20ca69f4b77e5c720dd58",
      "parents": [
        "36cfca8c85f6fcf454ef0e32a8c976948a2cf9bf"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri Apr 24 09:10:50 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 09:10:50 2026"
      },
      "message": "siso: webui /watch prototype render static page with active steps\n\nBug: b/502811805\nChange-Id: Iaabba94070776f3acff848a2c060a5d16a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7762685\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "36cfca8c85f6fcf454ef0e32a8c976948a2cf9bf",
      "tree": "967edf76973606f9679b4590c1bce3e2da5cb4ca",
      "parents": [
        "335e0b666a5a273f0c6b5104de4735dee8940485"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri Apr 24 09:08:44 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 09:08:44 2026"
      },
      "message": "gong: Support Rust executables consuming C++ link inputs\n\nWhilst this affects C++ resolvers, no e2etests were affected because\nexecutable() could already retrieve .a link inputs by looking at the\ngeneric outputs of its deps, rather than specifically look for cxx\ninformation.\n\nThis doesn\u0027t fix the missing transitive dependency in the C++ e2etest\nTestCxx_LibPropagation. That is left for a separate followup.\n\nBug: b/492000541\nChange-Id: I4c64602a154b7c61826861019465efec6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7741940\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "335e0b666a5a273f0c6b5104de4735dee8940485",
      "tree": "dc1d826e681577a334be67dd3343439b625b7f73",
      "parents": [
        "ce753161a9c488cb56587854f5eba0ae47b6eebd"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri Apr 24 07:37:37 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 07:37:37 2026"
      },
      "message": "siso: webui add skeleton watch page\n\nDoes not do anything. Is not added to the tabs, because it\u0027s not a\nfunctional page.\n\nBug: b/502811805\nChange-Id: I0915f43dd87a91a07b73b99f29b927966a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7762684\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "ce753161a9c488cb56587854f5eba0ae47b6eebd",
      "tree": "f32ad4ffb0a43e89be258ced631776c6c5b2c2ec",
      "parents": [
        "8629cde6728d25cde0f6fc1e6ae6b5886e0ebe41"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri Apr 24 07:36:07 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 07:36:07 2026"
      },
      "message": "gong: Initial implementation of cxx lib propagation\n\nThis implements the common config attribute `libs`. See\nhttps://gn.googlesource.com/gn/+/main/docs/reference.md#var_libs\nfor documentation.\n\nThis CL only adds support for system libraries e.g.\nhttps://source.chromium.org/search?q\u003df:BUILD%5C.gn%20(libs%5C%20%3D%5C%20%5C%5B%5C%20%5C%22%5Ba-z%5D)\u0026sq\u003d\n\nAnd does not yet handle file paths e.g.\nhttps://source.chromium.org/search?q\u003df:BUILD%5C.gn%20(libs%5C%20%3D%5C%20%5C%5B%5C%20%5C%22%2F)\n\nBug: b/492000541\nChange-Id: I0ffdaeb907577f5ea42a52500e6876e56a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7738066\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "8629cde6728d25cde0f6fc1e6ae6b5886e0ebe41",
      "tree": "1984e4d002acc9441bfb3c43231f680cdb867316",
      "parents": [
        "9bd073865156bd332d86422c78a6852b4d77665a"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Fri Apr 24 05:15:12 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 05:15:12 2026"
      },
      "message": "siso: put action digest in TooManyFallbackError\n\nfor now, InfraFailure doesn\u0027t include action digest.\ne.g.\n Infra Failure: Step(\u0027compile : Infra failure: fallback 4 exceeds limit 4: operation stage: EXECUTING worker\u003d12216364518054005543 queue\u003d2026-04-23 21:31:23.857560651 +0000 UTC 12.968251ms : rpc error: code \u003d DeadlineExceeded desc \u003d context deadline exceeded\u0027) (retcode: 1)\n\nif InfraFailure include action digest, it makes it easier\nto check whether exec time is really long (so better to\nincrease exec_timeout), or RBE just not responded.\n\nBug: b/478206466, b/503546538\nChange-Id: I9b898d22668c7bf4610e110080bf987cc30ca2d6\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7790532\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "9bd073865156bd332d86422c78a6852b4d77665a",
      "tree": "00095f0a3e1db43db27e50b98bd9639c1aac9896",
      "parents": [
        "555a92f9484db152aadf4a73c5c64d2c58c0d2f3"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Fri Apr 24 04:57:16 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 04:57:16 2026"
      },
      "message": "build: avoid flicker when redrawing terminal progress\n\nThe active-step progress UI redraws a fixed-height terminal frame every\ntick. The previous implementation explicitly called clearFrame before\nbuilding each replacement frame, which meant the old frame was erased in\none stdout write and the new frame was emitted in a later PrintLines\ncall.\n\nThat split is noticeably visible on Windows terminals: virtual terminal\nprocessing repaints the cleared rows before the replacement frame\narrives, so the progress area flashes blank every tick.\n\nLet the common no-pending redraw path hand the full frame to\nTermUI.PrintLines without the leading newline sentinel. PrintLines\nalready knows how to move up, clear the old fixed-height region, and\nwrite the replacement rows into a single buffer/write, which preserves\nthe new multi-row UI without the blank intermediate frame.\n\nKeep the explicit cursor-owned path for the first render and for pending\nstep output. The first render must append below startup text, and\npending output must clear the live frame, print into scrollback, and\nthen redraw below it. That small duplication keeps the scrollback\nbehavior obvious while avoiding flicker for ordinary ticks.\n\nAdd tests for the three frame-construction cases so the\nWindows-sensitive single-write redraw behavior does not regress.\n\nChange-Id: I5c9f186c34311190a2ddc86b9f3742ce849077c1\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7790512\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "555a92f9484db152aadf4a73c5c64d2c58c0d2f3",
      "tree": "7b72a048c39dd66913e20e3484aa32cf038e608e",
      "parents": [
        "8ca9ad385bf9b7b88c5e92ebf9b269f887d35e93"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Fri Apr 24 03:41:28 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 24 03:41:28 2026"
      },
      "message": "siso: move machine info detection from subcmd/ninja to alongside defs\n\nBug: b/503568819\nChange-Id: I86c90fd3d0fe33bca54a8add69cfc1366a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7784631\nReviewed-by: Alex Ovsienko \u003covsienko@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "8ca9ad385bf9b7b88c5e92ebf9b269f887d35e93",
      "tree": "bc562de69dc755eec01cb985e6686b82e5de0a87",
      "parents": [
        "793328fca922e51342ff83f68e6e629609a12946"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu Apr 23 23:35:17 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 23 23:35:17 2026"
      },
      "message": "siso: fix panic when `gn gen` failed\n\nhandle error for check manifest / load manifest\n\nBug: b/505729466\nChange-Id: I2dcbec35fbdaffb6f24e43f0d2e853776f943d11\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7790452\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "793328fca922e51342ff83f68e6e629609a12946",
      "tree": "d43c17000c8096d3300cf8de8f2835282c496875",
      "parents": [
        "fd6d6b5b5d54e00719adcdc48a9445ebe2c5a917"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu Apr 23 06:13:16 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 23 06:13:16 2026"
      },
      "message": "siso: SISO_EXPERIMENTS\u003dno-fallback sets b.maxFallbackAllowed\u003d0\n\nreports TooManyFallbackError with Fallbacks\u003d1, so will report as\ninfra failure.\n\nChange-Id: I98c1e9c847e8ef123bd13e9e9ff5165ce281bf35\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7786650\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "fd6d6b5b5d54e00719adcdc48a9445ebe2c5a917",
      "tree": "d1e0b673c09f7be0815d3907e7fb9cfcd8206685",
      "parents": [
        "56628f78b09d96e00e67682650c26bbe261e2e2b"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Thu Apr 23 00:43:47 2026"
      },
      "committer": {
        "name": "LUCI CQ",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 23 00:43:47 2026"
      },
      "message": "siso: update version string to v1.5.12\n\nv1.5.11 has been rolled out as pinned version at\ngit_revision:56628f78b09d96e00e67682650c26bbe261e2e2b\nhttps://crrev.com/c/7782526\n\nBug: b/504401928\nChange-Id: I27e27745ca7c215c115a5ee17dfbbd63c7aa284d\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7788110\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\n"
    },
    {
      "commit": "56628f78b09d96e00e67682650c26bbe261e2e2b",
      "tree": "2efde59e2d44f46e02961bab2c6340bd8e3f8f40",
      "parents": [
        "59844c41a01f0f1a477a61b7427104ebec43b902"
      ],
      "author": {
        "name": "Richard Wang",
        "email": "richardwa@google.com",
        "time": "Wed Apr 22 05:35:04 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 05:35:04 2026"
      },
      "message": "siso: log GOOS and GOARCH as part of machine info\n\nBug: b/503568819\nChange-Id: I86d9e13e7dae8ebdb29c74feead6262c6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7784330\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Richard Wang \u003crichardwa@google.com\u003e\n"
    },
    {
      "commit": "59844c41a01f0f1a477a61b7427104ebec43b902",
      "tree": "4ae015e3b7b79e948cf3ac4643c3cb088ba36774",
      "parents": [
        "d796a21b3a1d68e5fde4e0579a138925f66dfb30"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed Apr 22 04:04:33 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 04:04:33 2026"
      },
      "message": "kajiya: clean up orphaned upload temp files on startup\n\nUploadWriter creates each upload at cas/tmp/\u003cuuid\u003e and renames it into\nplace on Close(). If Kajiya is killed mid-upload, the UUID file is left\nbehind and later flagged as \"file with unexpected name\" by validate().\n\nChange-Id: Id17f209f33f86585f64cefa78a446a32f4d95548\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7784129\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "d796a21b3a1d68e5fde4e0579a138925f66dfb30",
      "tree": "08355c6dad6afcf1d0bfdb71f865e64a46ea0475",
      "parents": [
        "471381b2524ada31df99f8d5d38bb41335bcf647"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed Apr 22 03:49:48 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 03:49:48 2026"
      },
      "message": "Update go.mod dependencies\n\nAlso update collector e2e golden test data to reflect new fields\nintroduced by the updated otelcol and Google Cloud exporter\ndependencies (universe_domain, include_attributes, attributes).\n\nChange-Id: I7fc7ad3766ec9f583b6b600f9f1bb199db987088\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7782565\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Neri Marschik \u003cnerima@google.com\u003e\n"
    },
    {
      "commit": "471381b2524ada31df99f8d5d38bb41335bcf647",
      "tree": "0464867d2de8f24344d47fa22ee29ed47b589ae4",
      "parents": [
        "51779b5765dc8a28ea4afd665a52eb8c7dbac3e3"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed Apr 22 03:41:48 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 03:41:48 2026"
      },
      "message": "siso: prevent duplicate requestmetadata-bin entries\n\nNewContext is called at startup with nil metadata and again per-action\nin run_step, and AppendToOutgoingContext stacked both entries under the\nsame key. Strict REAPI servers like Kajiya then reject the Execute RPC\nwith: \"expected exactly one\n\u0027build.bazel.remote.execution.v2.requestmetadata-bin\u0027 metadata entry,\ngot 2\".\n\nSet the key explicitly so nested calls replace rather than accumulate.\n\nChange-Id: Ibe6fa07444c6b5e18688af4dcbbe0cbe162a7cb9\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7784109\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Philipp Wollermann \u003cphilwo@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "51779b5765dc8a28ea4afd665a52eb8c7dbac3e3",
      "tree": "33cca55c3653617456957a30767be2787d1c7aad",
      "parents": [
        "4c70700c4f324dcebfe1982f34eac25f0789a732"
      ],
      "author": {
        "name": "Fumitoshi Ukai",
        "email": "ukai@google.com",
        "time": "Wed Apr 22 02:35:06 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 02:35:06 2026"
      },
      "message": "siso: introduce SISO_EXPERIMENTS\u003dallow-fallback-*\n\nToo many fallbacks would cause bad failure mode like\nfallback -\u003e many local actions -\u003e OOM or bot unresponsive -\u003e task died.\n\nTo make better failure mode, introduce max fallback allowed,\nand make infra failure if fallback exceeds the max.\n\nWe might want to use small max fallback by\nSISO_EXPERIMENTS\u003dallow-fallback-low\n\nwe\u0027ll gradually reduce this by siso rollout.\nSISO_EXPERIMENTS\u003dallow-fallback-high\nto set it to previous value\nin case new rollout causes trouble without rolling back siso.\n\nWrite result in siso_result.json.\n\nBug: b/478206466, b/503546538\nChange-Id: I8e11627896bd9a833260dab3e2c1e015d6a51f18\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7754280\nCommit-Queue: Fumitoshi Ukai \u003cukai@google.com\u003e\nReviewed-by: Junji Watanabe \u003cjwata@google.com\u003e\nAuto-Submit: Fumitoshi Ukai \u003cukai@google.com\u003e\n"
    },
    {
      "commit": "4c70700c4f324dcebfe1982f34eac25f0789a732",
      "tree": "a4cb93ee9404ec6da8a9608cda16c8ad4bf88235",
      "parents": [
        "8574ad8f7cf04ad6c374374dfd7c66b12cdf0555"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Wed Apr 22 01:36:19 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 01:36:19 2026"
      },
      "message": "siso: Address code review comments from racing PR\n\nI forgot to add these to the commit before merging. :/\n\nChange-Id: Ia5b69c662d476ae29098ccc2d2d18e992f3510f8\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7761748\nCommit-Queue: Yuke Liao \u003cliaoyuke@google.com\u003e\nReviewed-by: Yuke Liao \u003cliaoyuke@google.com\u003e\nAuto-Submit: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    },
    {
      "commit": "8574ad8f7cf04ad6c374374dfd7c66b12cdf0555",
      "tree": "ff25784d6e8f228ca7a7a465914cf61dce9c2cbd",
      "parents": [
        "fc050832bb33ff6518fcf8df46a369cded3adc6f"
      ],
      "author": {
        "name": "Neri Marschik",
        "email": "nerima@google.com",
        "time": "Wed Apr 22 00:54:43 2026"
      },
      "committer": {
        "name": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "infra-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 22 00:54:43 2026"
      },
      "message": "subcmd/ninja: store outputLocal on Command, drop c.fsopt read race\n\nAfter 677a48be (reland \"don\u0027t wait deps log to load build.ninja\"),\nTestBuild_offline fails intermittently under go test -race. The\nloadNinjaFiles errgroup goroutine calls initBuildOpts which reads\nc.fsopt.OutputLocal, concurrent with setupHashFS on the main\ngoroutine writing the same field while filling the hashfs.Option.\n\ninitBuildOpts has no real dependency on c.fsopt, it just needed the\nOutputLocal predicate. Compute it once near the top of Run, before\nthe errgroup launches, and store it on c as c.outputLocal. Both\ninitBuildOpts and setupHashFS now read c.outputLocal. The cross\ngoroutine read is gone by construction, not by ordering.\n\nVerified with 100 serial go test -race -run TestBuild_offline\niterations (reproduced at roughly 20% before the fix), plus a full\ne2e package run under race.\n\nChange-Id: Ied79408176502df4030c9d2d712c540ea75f8fab\nReviewed-on: https://chromium-review.googlesource.com/c/build/+/7781569\nReviewed-by: Fumitoshi Ukai \u003cukai@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\n"
    }
  ],
  "next": "fc050832bb33ff6518fcf8df46a369cded3adc6f"
}
