)]}'
{
  "log": [
    {
      "commit": "c2bb0aa3f71ab26e0939b0441468c47678a240a7",
      "tree": "fa27183682425d3e0b50abee9b4c5323195abf00",
      "parents": [
        "1dfac7dd22c6db4fec7935370838dc4f4eecf4bf"
      ],
      "author": {
        "name": "Copybara",
        "email": "copybara-worker-blackhole@google.com",
        "time": "Wed Oct 21 16:02:10 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Oct 21 23:54:30 2026"
      },
      "message": "nassh: l10n: import translations\n\nBbcpOrigin-RevId: 1003983368\nChange-Id: Id781ac5071239b93c2dd1db69f5701e51a7b2da7\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8625288\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "1dfac7dd22c6db4fec7935370838dc4f4eecf4bf",
      "tree": "f4005a0d910d464e68a1a0a5d267f4c226049738",
      "parents": [
        "7ebc4280801f7a4be816aff4543791bfd4c277a0"
      ],
      "author": {
        "name": "Nick Peterson",
        "email": "nrpeter@google.com",
        "time": "Wed Sep 30 03:22:27 2026"
      },
      "committer": {
        "name": "Nick Peterson",
        "email": "nrpeter@google.com",
        "time": "Wed Oct 21 21:52:36 2026"
      },
      "message": "nassh: expose connected hostname as a URL query parameter\n\nChrome Enterprise data controls (e.g. clipboard DLP rules) are keyed\noff the page URL, so record the ssh host we connect to as\n?canonicalized-hostname\u003d\u003chost\u003e.  The parameter is output only; nassh\nnever reads it.  The user-facing contract is documented in the FAQ\nalongside the rest of the nassh.html URI spec.\n\nnavigate_() is unchanged: it still swaps the #hash via\nlocation.replace(), which is a same-document (fragment) navigation.\nThe query string can\u0027t take that path -- a query change through\nlocation.replace() is a cross-document navigation that would reload\nthe page and kill the session -- so a new setHostnameParam_() helper\nupdates it with history.replaceState() instead: no reload and no new\nhistory entry.\n\nThe hostname is written twice.  First from the profile/destination\nbefore connecting, i.e. whatever the user typed.  Then, since\nssh_config may rewrite that (HostName) or it may be an IP literal, a\nnew onConnectAttempt hook in the wassh syscall handler refines it with\nthe address ssh actually tries to reach on its first AF_INET/AF_INET6\nconnect.  The hook only touches the URL in place; it never navigates,\nand exceptions in it cannot affect the connect.\n\nChange-Id: I131f0bf0907f4309b5a808b13986ff9a69660001\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8487515\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "7ebc4280801f7a4be816aff4543791bfd4c277a0",
      "tree": "82e196c05fb5df18ff2a44fbab5bb1de84b361aa",
      "parents": [
        "322e61e39689c36823543a48ed8234f36688cf34"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 20 04:43:21 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 20 05:19:32 2026"
      },
      "message": "hterm: wcwidth: update to Unicode 18\n\nChange-Id: Icb15478e125be895645574c1664341f811949b0d\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8605432\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "322e61e39689c36823543a48ed8234f36688cf34",
      "tree": "9460d7459455bd09c17860d67db6286be365ab99",
      "parents": [
        "58a3c13e0ac1a36160b8d1a584ec25e982cad557"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 20 04:41:08 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 20 05:19:25 2026"
      },
      "message": "hterm: wcwidth: handle newer Unicode formatting\n\nNewer Unicode standards have reformatted the inputs to make it more\nreadable for humans by adding whitespace everywhere.  Update parsing\nto strip that from all input fields.\n\nFor example, older versions would write:\n0000..001F;N        # Cc    [32] \u003ccontrol-0000\u003e..\u003ccontrol-001F\u003e\n0020;Na             # Zs         SPACE\n\nWhile current ones now write:\n0000..001F     ; N  # Cc    [32] \u003ccontrol-0000\u003e..\u003ccontrol-001F\u003e\n0020           ; Na # Zs         SPACE\n\nChange-Id: I03e3dd53d6aa94115fdc164136ecb20c301682d1\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8605431\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "58a3c13e0ac1a36160b8d1a584ec25e982cad557",
      "tree": "1afd0b77d7cc7bfb43bcc1005f40d539eb3d699f",
      "parents": [
        "741f3ad6f04c96b92b72e1bfea11ebb2b9ec06be"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Oct 11 07:45:49 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Oct 14 16:22:37 2026"
      },
      "message": "nassh: manifest: restrict COEP\n\nAnother incremental step for enabling cross-origin isolation, set COEP\n(Cross-Origin-Embedder-Policy) to credentialless.  Since we support\nloading user-css \u0026 web fonts from external sites, we can\u0027t jump to\nrequire-corp without possibly breaking users.  In theory this mode\nshouldn\u0027t do much as the extension itself doesn\u0027t maintain cookies,\nbut let\u0027s take this small step to see if it helps or breaks people.\n\nChange-Id: Ic50c0ad98638d15a12bb50b3bca712423264cdb7\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8554657\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "741f3ad6f04c96b92b72e1bfea11ebb2b9ec06be",
      "tree": "82f3f09dcdd8e25c0a30769d2c657c9a4e855c21",
      "parents": [
        "84c10c2e997c74190e1b288c5a8ec56be96ae7c1"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Oct 11 07:38:37 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 13 15:04:36 2026"
      },
      "message": "nassh: manifest: restrict COOP\n\nA simple first step for enabling cross-origin isolation, set COOP\n(Cross-Origin-Opener-Policy) to same-origin.  This restricts access\nto things like Window.opener when opening new pages.  We\u0027ve long\ntried to disable that dynamically akin to noopener, so this should\nnot break anything.\n\nChange-Id: I5de2e6ec5025b1661e52aab17b641d25eddbdc66\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8546389\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "84c10c2e997c74190e1b288c5a8ec56be96ae7c1",
      "tree": "abc5efcf953539a4431199d6baad853a4b032d73",
      "parents": [
        "f27d5d59381c1952547e6ed09466b26555687a1a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Oct 12 15:22:19 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Oct 12 22:43:33 2026"
      },
      "message": "nassh: plugin: update to 0.82\n\nChange-Id: I630c5fc775b51ad442acecfb5dca325305d4b620\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8556219\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "f27d5d59381c1952547e6ed09466b26555687a1a",
      "tree": "edee7101378dd2eea02d40e2be3fc2ddd26ae2cb",
      "parents": [
        "f3b11d7e07d93b172883a6bbdfae42a3d8179008"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Oct 11 07:37:40 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Oct 12 15:23:05 2026"
      },
      "message": "nassh: manifest: disable \u003cobject\u003e usage via CSP\n\nWe used object/embed tags for NaCl, but not WASM.  Since NaCl has been\npurged from the tree, there\u0027s no need to keep allowing this tag.\n\nChange-Id: I910d0c90f7dfd6967e467b306683e6cfbda89201\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8546388\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "f3b11d7e07d93b172883a6bbdfae42a3d8179008",
      "tree": "0650be1b1a27f09394a739ddb4668f58e458b750",
      "parents": [
        "010a189c864dfe7c3b627e6c33859b7b198a4b5b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Oct 09 09:28:50 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Oct 11 06:28:24 2026"
      },
      "message": "hterm: init: skip negative window ids\n\nIf chrome.tabs.getCurrent returns a valid tab, but its windowId is\nnegative, don\u0027t try to query the window state as it\u0027ll fail.  This\nshows up on desktop Android currently.\n\nChange-Id: Ib6c9bcc5773ea490d1fd0186433b2293c888b989\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8549333\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "010a189c864dfe7c3b627e6c33859b7b198a4b5b",
      "tree": "5f0fee1e5386080730e5764df280bfa9b59c0b4f",
      "parents": [
        "46e0a5ca9eb28ed31fff6ab236ad930209bf498d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Oct 09 08:31:10 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Oct 11 06:27:48 2026"
      },
      "message": "nassh: command: log an error if plugin loading failed\n\nIf the plugin init fails, make sure we display the error so people\naren\u0027t left with what seems like a hanging program.\n\nBug: 571179204\nChange-Id: I982af16765f6f9998788ca084c1ce1baf9231dce\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8547732\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "46e0a5ca9eb28ed31fff6ab236ad930209bf498d",
      "tree": "390fa9f70abdc30810784a0811c91f30028abe2f",
      "parents": [
        "55c860e79cb4a2fb160f7dfd63c00d8120fab24d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Oct 07 18:34:51 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Oct 08 01:47:11 2026"
      },
      "message": "nassh: release 0.82\n\nChange-Id: Ibf97f0a928000a97084962af64d73046a808ecc9\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8530867\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nReviewed-by: Jay Patel \u003cjpy@google.com\u003e\n"
    },
    {
      "commit": "55c860e79cb4a2fb160f7dfd63c00d8120fab24d",
      "tree": "95a628e34b15272e37d5b2bc1169920eedd76a9e",
      "parents": [
        "2f854129083600cdb31a81ac60a4ad6f1da06ac2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 06 15:07:58 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Oct 07 14:15:25 2026"
      },
      "message": "ssh_client: openssh: upgrade to 10.6\n\nChange-Id: I7043da7430237bb5761ec6ffaa01a10b8d311278\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8520309\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "2f854129083600cdb31a81ac60a4ad6f1da06ac2",
      "tree": "f34a5e403cabb8b28a9c34e58ba3ce19fab08294",
      "parents": [
        "33091661836d22b7ff174cdc24e454a93b5e1153"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Mon Oct 05 05:38:02 2026"
      },
      "committer": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Wed Oct 07 06:06:54 2026"
      },
      "message": "hterm: exclude CJK brackets from URL and word-break selection\n\nIn Japanese and East Asian typography, URLs frequently appear enclosed\nin full-width quotation marks and brackets without whitespace\ndelimiters, such as corner brackets 「」, double corner brackets 『』,\nblack lenticular brackets 【】, and full-width parentheses （）.\n\nPreviously, hterm only configured ASCII delimiters and Western\nquotation marks in its word-break heuristics. When expanding selections\nfor URLs or double-clicked words, these full-width brackets were treated\nas constituent URL characters and swallowed into the selection.\n\nTo provide consistent boundary handling for East Asian punctuation:\n1. Add CJK brackets (U+300C, U+300D, U+300E, U+300F, U+3010, U+3011,\n   U+FF08, and U+FF09) to the character exclusion classes of\n   expandSelectionForUrl in hterm.Screen.\n2. Synchronize these characters into the default word-break preferences\n   (word-break-match-left, word-break-match-right, and\n   word-break-match-middle) in hterm.PreferenceManager so that\n   interactive double-click selections halt at full-width brackets.\n\nChange-Id: I5abb3820be915f155318100f41a7304de8b870a2\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8513558\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "33091661836d22b7ff174cdc24e454a93b5e1153",
      "tree": "dcebae65ea390dd9bf622a6a93c1ffa9d54ba0a3",
      "parents": [
        "fa84158bb5023fa3d8bf58866dc869bdac74ed24"
      ],
      "author": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Fri Jun 12 14:27:18 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 06 18:42:03 2026"
      },
      "message": "terminal: tmux: limit send-keys to 9500 bytes\n\nTmux server responds with a %error when sent more than 9993 bytes\nin a send-keys so limit to 9500 bytes.\n\nBug: 522751011\nChange-Id: I10412b00fa2bc6955ff4a4f2568a891d5dee196a\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7931630\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "fa84158bb5023fa3d8bf58866dc869bdac74ed24",
      "tree": "dc6d20793386fe7ab37c30205e7f7eec3f4b2ca3",
      "parents": [
        "a1c989a712f5b15987a8815ac9ba4cf21f6e8eab"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Oct 02 19:43:10 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Oct 06 05:09:02 2026"
      },
      "message": "nassh: drop duplicate untranslated messages\n\nAt some point these were duplicated during an import, but they aren\u0027t\nneeded because the fallback language (\"en\") has the same message and\ntranslation already.\n\nChange-Id: Ibe3a867a2d960a9b804c51bc67d0871e8c10aa8c\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8502109\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "a1c989a712f5b15987a8815ac9ba4cf21f6e8eab",
      "tree": "272744665060e807a221d89f8f7e4ea6f3c0c74f",
      "parents": [
        "617b74be7be0d9bcf09a28641a8325557c238532"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Mon Oct 05 05:35:54 2026"
      },
      "committer": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Tue Oct 06 01:15:37 2026"
      },
      "message": "hterm: screen: fix wide character selection offsets\n\nhterm.Screen tracks positions and character cells in column width\nunits (via hterm.wc.strWidth), while DOM Range and Selection offsets\nmeasure in UTF-16 code units.\n\nIn expandSelectionWithWordBreakMatches_, expandedStart was computed\nusing String.prototype.search, which returns a UTF-16 code unit index\ninto the prefix string. Because wide characters occupy two terminal\ncolumns but only one UTF-16 code unit, the character index diverged from\nthe column coordinate by the cumulative count of preceding wide\ncharacters. Passing this character index to setRange_ caused selection\nboundaries to systematically expand too far to the left, capturing\npreceding wide characters into the selection.\n\nAdditionally, getNodeAndOffsetWithinRow_ and getPositionWithinRow_\ndirectly assigned column widths into DOM text offsets and vice versa,\ncausing DOM IndexSizeError exceptions or corrupted character bounds\non nodes containing wide characters. Similarly, getSelectionText in\nhterm.Terminal used raw DOM code unit offsets rather than the column\nwidth of the respective text slices.\n\nTo align the DOM selection model with terminal column geometry:\n1. Compute expandedStart in expandSelectionWithWordBreakMatches_ by\n   converting the line prefix before the match into column width via\n   hterm.wc.strWidth.\n2. In getNodeAndOffsetWithinRow_, convert remaining column offsets to\n   character lengths using hterm.TextAttributes.nodeSubstr.\n3. In getPositionWithinRow_, map DOM node offsets back into column\n   widths using hterm.wc.strWidth.\n4. In hterm.Terminal.prototype.getSelectionText, compute boundary\n   offsets using hterm.wc.strWidth across partial text slices rather\n   than raw DOM code unit lengths.\n\nChange-Id: I36eed409352649f6bda0f2da68b537259f21778b\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8513557\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "617b74be7be0d9bcf09a28641a8325557c238532",
      "tree": "1ef1189ccef4f62df283c6d7840f3253ae03d1b8",
      "parents": [
        "7cb1c376cdf92afe88f51c8ace45af7e5b84322c"
      ],
      "author": {
        "name": "Jay Patel",
        "email": "jpy@google.com",
        "time": "Wed Sep 09 22:01:23 2026"
      },
      "committer": {
        "name": "Jay Patel",
        "email": "jpy@google.com",
        "time": "Tue Sep 29 20:06:39 2026"
      },
      "message": "nassh: sshfe: Implement WebAuthn support\n\nChange-Id: I8f84673619f99478c8690ba6b5bb288615341239\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7783562\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "7cb1c376cdf92afe88f51c8ace45af7e5b84322c",
      "tree": "fa057ebd1ff87e3b2649efb36e3b20c205269aa8",
      "parents": [
        "20505fab46a7410e6ce647c2a4aa2fa84ffefb5c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Sep 16 18:07:19 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Sep 17 13:38:21 2026"
      },
      "message": "nassh: update translations\n\nChange-Id: If8416e6e396b51a5678ddaf151b96ce562c8e737\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8418372\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "20505fab46a7410e6ce647c2a4aa2fa84ffefb5c",
      "tree": "a9fa7945478c718f413f0b169123a42d5a2bb8ae",
      "parents": [
        "b4c15ff233eecd81925573780070cb131eb5f9bb"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Sep 16 18:07:07 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Sep 17 13:38:19 2026"
      },
      "message": "nassh: plugin: update to 0.81\n\nChange-Id: Ic8265744b5ed4f1cac9c5d9284c27ef0475979e9\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8418488\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "b4c15ff233eecd81925573780070cb131eb5f9bb",
      "tree": "60103778a8be6d956121c69c956d50b750fcd313",
      "parents": [
        "da0275fb3531558624286600f5a3b474de232b9d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Sep 11 15:05:38 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Sep 12 18:15:49 2026"
      },
      "message": "nassh: release 0.81\n\nChange-Id: I3bf3c1249ef9e6a5d60a961972712df61ca32f92\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8393742\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "da0275fb3531558624286600f5a3b474de232b9d",
      "tree": "cdbc412639cfff0a977ca2addb1d665cba18d77c",
      "parents": [
        "d938d61be55b945a2c81d277b1e89b1ccdb2e0ec"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Sep 11 16:50:25 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Sep 12 18:15:36 2026"
      },
      "message": "wasi-js-bindings: tests: add lseek coverage\n\nRework some of the existing tests so they have 1 file position to match\nnormal code, then add lseek coverage to make sure SET/CUR/END work.\n\nVerified the tests fail before commit f4742d5a81a2bea3fd16059d469bef499\n(\"wasi-js-bindings: fix constants for preview1\"), and pass after it.\n\nBug: 545877441\nChange-Id: Id2fb5511aabe5494c6c1bbb0e0a82dbf935bd249\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8393744\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "d938d61be55b945a2c81d277b1e89b1ccdb2e0ec",
      "tree": "7efd72dd32432886571ae00d6ad2f30e64e38a6a",
      "parents": [
        "f4742d5a81a2bea3fd16059d469bef499738cccc"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Sep 11 15:52:34 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Sep 12 18:15:29 2026"
      },
      "message": "wasi-js-bindings: tests: check tests fully passed\n\nWhen reworking the runtime model to return instead of throwing an\nexception, the read-write test migrations were missed.  This meant\nreal errors could be ignored.  While other tests write JSON output\nand verify it\u0027s parsed correctly, this test dumps a raw step log,\nso we have to add a custom \"PASS\" marker to the end to check.\n\nAlso add more checks to the argv test code.\n\nBug: 545877441\nChange-Id: Idfdc54ea4949e441d072cae54f791c5f29ea3af5\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8393743\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "f4742d5a81a2bea3fd16059d469bef499738cccc",
      "tree": "2b0e479e7377adf1c945dc094b3232068840f727",
      "parents": [
        "1797e52517609819ea0375ac8dec32b8ed7e5198"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Sep 11 04:15:39 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Sep 11 14:52:52 2026"
      },
      "message": "wasi-js-bindings: fix constants for preview1\n\nThe WASI preview1 release renumbered some constants, but wjb updates\nwere missed.  The whence seek constants need renumbering for sure.\n\nBug: 545877441\nChange-Id: I5d6a36bf34b6ff7d23fa2e04dd7d1db7ec138f2d\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8393738\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "1797e52517609819ea0375ac8dec32b8ed7e5198",
      "tree": "f699ccc0dad4d0d422a2568241aa35a20c2272ae",
      "parents": [
        "b4b751cc97c69f8b8a4b4ff123e574f5434923e4"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Sep 02 20:40:35 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Sep 09 04:28:51 2026"
      },
      "message": "wassh-libc-sup: move signal export to source file\n\nWe can declare the export directly in the source which avoids needing\nto specify a linker flag all the time.\n\nChange-Id: I57713be4c4d5ac18c50dc1e3f9fb828f473dd39c\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8344669\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "b4b751cc97c69f8b8a4b4ff123e574f5434923e4",
      "tree": "43786baab399c7e21976ebe66c81066f2e97cc6c",
      "parents": [
        "0e40e01fcff92e043e748803c9e2c5aca950d96f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Aug 18 15:53:13 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Sep 01 19:18:51 2026"
      },
      "message": "wassh: drop \"experimental\" from wasm namespace\n\nThings are basically stable now, so drop the \"experimental\" markings.\n\nChange-Id: I85bceb880d3b1bdb4735cfb9d8a38e168f0f9900\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8264450\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "0e40e01fcff92e043e748803c9e2c5aca950d96f",
      "tree": "2e72897ddc0f2c2474d52ee2d78b1da92a557a17",
      "parents": [
        "d8043e39a0cf4f20d09ba6df903aec4a63c5880e"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Aug 24 13:09:43 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Sep 01 19:18:46 2026"
      },
      "message": "nassh: plugin: update to 0.80\n\nChange-Id: I73b4a4141eba8bd89d3c3dcc277e2fd2b6a1cab0\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8278496\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "d8043e39a0cf4f20d09ba6df903aec4a63c5880e",
      "tree": "681136ddc5384be48907bdc76ceb93c1232f31ff",
      "parents": [
        "85208d7dc2ffe56f6bb953c306f893da8d532a17"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Aug 13 12:57:28 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Aug 19 12:19:45 2026"
      },
      "message": "nassh: release 0.80\n\nChange-Id: I1517b58143222f09715b17ffa5c77849dc881e07\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8257190\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "85208d7dc2ffe56f6bb953c306f893da8d532a17",
      "tree": "086506fa7140da5a4a6492cbcea44424e1ba8e11",
      "parents": [
        "442e2a007406f2bb161e9b589079a665ec8fb10a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Aug 12 15:23:20 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Aug 13 08:39:48 2026"
      },
      "message": "ssh_client: openssh: upgrade to 10.5\n\nChange-Id: Iea8b462eb82ce37f1fb20a77469fff8202d3616c\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8247059\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "442e2a007406f2bb161e9b589079a665ec8fb10a",
      "tree": "68238298c350aeb5c638b1dad2a2783abde6596c",
      "parents": [
        "f916dbc5b9b50863d3247619070590b1573005ed"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 14 10:25:54 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Jul 24 21:06:38 2026"
      },
      "message": "libdot: test: fix chai test detection\n\nBoth lib.assert \u0026 nassh/js/nasftp_cli.js use chai in the global namespace\nto detect whether we\u0027re running unittests or production code.  This broke\na year ago when we upgraded to chai v5 which switched from global imports\nto ES6 modules.  The nasftp code wasn\u0027t logging as verbosely during tests\n(which isn\u0027t a big deal), and all of our libdot-based asserts were skipped\nduring tests.  The latter is not good, but since we haven\u0027t broken any of\nthe tests, it\u0027s OK to re-enable so the asserts actually assert.\n\nChange-Id: I0ddb5d3d14c3d5bbd8ee455911e9d321a249d541\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8086814\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "f916dbc5b9b50863d3247619070590b1573005ed",
      "tree": "d5a1dc1f51e90842e32048bf3f1e0fe4d06daa1c",
      "parents": [
        "7ca33bc7433232411993356b4767011a6b6426cf"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 21 05:34:54 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 21 06:03:47 2026"
      },
      "message": "nassh: plugin: update to 0.79\n\nChange-Id: I119fe40a570e09026b17028d957ba10c774b109f\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8130018\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "7ca33bc7433232411993356b4767011a6b6426cf",
      "tree": "f285ad69553b83cc209754f1975e104ea42cc699",
      "parents": [
        "d6868d57812e0823caac7fce95285d479c382b4c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jul 15 14:54:48 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Jul 16 14:17:23 2026"
      },
      "message": "nassh: release 0.79\n\nChange-Id: I96f7213f7e5a199b459dd656b3f02edcab564563\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8100122\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "d6868d57812e0823caac7fce95285d479c382b4c",
      "tree": "621b1c3f9b00544fd0327abe07f35dcf226730a6",
      "parents": [
        "872ae6461355b77290a9b6d603bd0dc0c4143944"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 07:25:28 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 14 06:50:05 2026"
      },
      "message": "nassh: nasftp: use lib.f.randomInt helper\n\nChange-Id: Ic130c93488a1de0b101c11963e33b27b2360bb05\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8084241\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "872ae6461355b77290a9b6d603bd0dc0c4143944",
      "tree": "f20b88b64d43ad3b89f2b1350341450ac9a00f3f",
      "parents": [
        "00ba7c35106ddd0bde22d3e5a7535f7f079fa4da"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 07:27:29 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 14 06:48:27 2026"
      },
      "message": "libdot: tests: add lib to the JS console for debugging\n\nChange-Id: I53219a5a58a7cc776efe0e68501b5a8050b0fe01\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8084242\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "00ba7c35106ddd0bde22d3e5a7535f7f079fa4da",
      "tree": "2556152c857f329b28fedafbdccea8c231370531",
      "parents": [
        "9cc1738c434794793fdea3ed0d17afbe6dad723e"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 15:44:58 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 14 04:52:47 2026"
      },
      "message": "ssh_client: openssh: drop EXTRA_CFLAGS settings\n\nWe don\u0027t need it anymore, so stop overriding it.\n\nThis allows CFLAGS to take effect which changes sizes slightly.\n\nBug: 40829855\nChange-Id: I4ccc8b7810c40e5da8645518c80f936b9b8c8d39\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8084481\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "9cc1738c434794793fdea3ed0d17afbe6dad723e",
      "tree": "0fa959a78bb58f1b9eab5dacad0c2c77f04af08f",
      "parents": [
        "0809d8300085449630e8925548b79f8a47fb6eaa"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 06:43:21 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 14 04:28:51 2026"
      },
      "message": "ssh_client: set default CFLAGS to -g0\n\nAutotools will default CFLAGS to -O2 -g -pipe, where -g is -g2.\nWe\u0027ve been building OpenSSH with \"\" implicitly due to how we were\nadding EXTRA_CFLAGS which is basically -O0 -g0.  Switching to -g2\nsignificantly increases size because we aren\u0027t stripping debug\ninfo.  Explicitly set the default to -O2 -g0 -pipe so we keep the\nsizes the same.  In practice, we still get usable backtraces, so\nthis should be fine rather than trying to figure out splitdebug.\n\nThe mosh builds are already using the same settings.\n\nBug: 40829855\nChange-Id: I7b6859017c31cf6a74d0ae082242e1179a2caf84\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8084480\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "0809d8300085449630e8925548b79f8a47fb6eaa",
      "tree": "6f57bb4dce2e2a7cad80d9b4162c82364cbc033c",
      "parents": [
        "b4e41af1378f6c4a0ef395e65f13cf29c6500451"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 12 16:20:24 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 03:28:56 2026"
      },
      "message": "ssh_client: disable automatic wasm-opt usage\n\nWhen clang finds wasm-opt in $PATH, and if optimization levels are high\nenough, then clang will automatically run the tool when generating the\nfinal linked output.  This causes us problems:\n* We already run wasm-opt at the end with specific settings to avoid\n  specific bugs in the tool\n* It slows down intermediate link tests from configure for no value\n* We\u0027re running into new bugs when running configure tests breaking\n  the overall results\n\nChange-Id: I3d6880c3d05398a01fab0559f7056da9f3b15fc0\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8081200\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "b4e41af1378f6c4a0ef395e65f13cf29c6500451",
      "tree": "0632ad8a41b696292d5ccec044979429ccd339d1",
      "parents": [
        "ecc69cf672adf20b46d7aa08267b9f40613a1d41"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 18:12:58 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 03:27:29 2026"
      },
      "message": "ssh_client: wassh-libc-sup: fix closefrom return\n\nBSD/GNU define this as a void function.\n\nChange-Id: I3e41b4815599d0813f6943fc3fa8ceb0220e4bab\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8079622\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "ecc69cf672adf20b46d7aa08267b9f40613a1d41",
      "tree": "d3d4a29ccfd8ffcb428c19d51a9c6555001bf168",
      "parents": [
        "11570c10ad229302863a3451152871321bb3c1ee"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 15:51:57 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 03:27:26 2026"
      },
      "message": "libdot: externs: chai: fix throws API to accept classes\n\nChange-Id: Ib2c9e75cbea3c3d242fb710011df06473d15d9b3\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8079621\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "11570c10ad229302863a3451152871321bb3c1ee",
      "tree": "6bd63e2b5bd76e1297b4a8856575e4f648ac1ef1",
      "parents": [
        "126fb0e21880648db5d252b029357ba8b0cad776"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 14:14:58 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 13 03:26:37 2026"
      },
      "message": "wassh: sockets: handle async read failures gracefully\n\nDirect sockets throw exceptions when sockets break (e.g. the network\ngoes down).  Make sure we catch any such breakage, set the error via\nthe async SO_ERROR, and then cleanup the socket state.\n\nBug: b/478419493\nChange-Id: I449234a8d8f0b1495d50e170260d5a85f42eea93\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8079620\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "126fb0e21880648db5d252b029357ba8b0cad776",
      "tree": "e07d8a0bcfe07bbaff5c1ebf61a3778f149a501c",
      "parents": [
        "5f1698f2212b4fee72fa8e966802f15303edf441"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Jul 10 10:25:12 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 10:34:55 2026"
      },
      "message": "nassh: convert to Uint8Array.toBase64\n\nChange-Id: I09e258a573793b0597afc0c48dc171f24a679ae9\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8061338\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "5f1698f2212b4fee72fa8e966802f15303edf441",
      "tree": "1bf830db7af0029d9a9971e459d2a4492c446bcf",
      "parents": [
        "247e0f55fff97d25e0ada4f86ff6ae1491e806a8"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Jul 10 10:16:50 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 10:34:46 2026"
      },
      "message": "libdot: polyfill: add Uint8Array.toBase64\n\nES2026 has a new helper for turning Uint8Array into base64 encoded data\nwhich is an operation we do in many places.  Define a polyfill for it in\nlibdot using our existing APIs.\n\nChange-Id: Ib4d3cc1441b2d1a6eab1e7bf14130e3cd2881082\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8061337\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "247e0f55fff97d25e0ada4f86ff6ae1491e806a8",
      "tree": "1a523395591fdb1ff50f18f45560bdc20b67af03",
      "parents": [
        "2d6c1dd41970bb0fd001913501f03d7a7a177e20"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Jul 09 20:10:48 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 10:34:39 2026"
      },
      "message": "hterm/nassh/terminal: convert to Uint8Array.fromBase64\n\nChange-Id: I93d01c12938fdb983ac85d2325cf04c9e33974ce\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8061336\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "2d6c1dd41970bb0fd001913501f03d7a7a177e20",
      "tree": "267a54b5dbc10baea445032477c1120f615bdc0a",
      "parents": [
        "4c1ca864f17dcf43b3f0b50ae1f6b4374b1859d4"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Jul 09 20:09:42 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 11 10:34:29 2026"
      },
      "message": "libdot: polyfill: add Uint8Array.fromBase64\n\nES2026 has a new helper for turning base64 encoded data to a Uint8Array\nwhich is an operation we do in many places.  Define a polyfill for it in\nlibdot using our existing APIs.\n\nChange-Id: I7275b7407502cfb6ca459d33ed3e0ba0aee006f0\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8061335\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "4c1ca864f17dcf43b3f0b50ae1f6b4374b1859d4",
      "tree": "02fc7eb171ae43513921af6ffab309f4b75fe83e",
      "parents": [
        "47c9935d36563af73b432e741cf7e90799d785ec"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Jul 09 19:52:06 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Jul 10 04:19:26 2026"
      },
      "message": "libdot: load_tests: enable COOP too\n\nThis allows headless testing to access SharedArrayBuffer.  This option\nwas enabled in the default http-server run in /package.json already.\n\nChange-Id: Ic058680a247b0f1e16583ce405aa5364be5f2ca0\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8072138\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "47c9935d36563af73b432e741cf7e90799d785ec",
      "tree": "fbd65d5cbe2e63dcc4699201357cec886fa30e67",
      "parents": [
        "b725cadfc022274b101957155b356e51dc1b88ce"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 14:13:48 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Jul 09 04:51:21 2026"
      },
      "message": "wassh: sockets: handle disconnected read/write better\n\nIf the sockets aren\u0027t connected, then read \u0026 write operations should\nfail right away.  Some of these were leading to crashes.\n\nChange-Id: I1dec23ad1705e5d576f7e9182a755642a920c008\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8064744\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "b725cadfc022274b101957155b356e51dc1b88ce",
      "tree": "c61850d4f4240f3333d1df1a9bd25874777b76fb",
      "parents": [
        "ecd4938ff13e0acd91e8824117fb3e424ec49cf3"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 11:29:31 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Jul 09 03:43:46 2026"
      },
      "message": "wassh: tests: initial suite\n\nStart a test suite so we can validate the complicated logic we have.\n\nChange-Id: If51363110690d5403d3fd6b3744d45110bf8aee6\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8043240\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "ecd4938ff13e0acd91e8824117fb3e424ec49cf3",
      "tree": "655e980bcd88ebe5d00ec6ad83a55c6b04c921e7",
      "parents": [
        "9107c66f6f3d9c0f86875b63e1f708748b9a5a9f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 10:33:27 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 07 06:51:31 2026"
      },
      "message": "nassh: sftp_client: convert to ES6 classes\n\nShould just be indentation \u0026 class syntax changes.\n\nChange-Id: I2f5d26adfd95c6457d89360b675f14688a8a5610\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8050042\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "9107c66f6f3d9c0f86875b63e1f708748b9a5a9f",
      "tree": "82d42c72c3ca331a5a48080a655fed8ae82f9a8a",
      "parents": [
        "bdb55a162b1e876ef0c4708fc9bf4538a6cbb72f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 13:22:11 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 07 05:34:20 2026"
      },
      "message": "ssh_client: openssh: upgrade to 10.4\n\nChange-Id: I3619df75ee6c2e4c867f39eb0891c971cc99350a\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8041351\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "bdb55a162b1e876ef0c4708fc9bf4538a6cbb72f",
      "tree": "6e349787cbffc268da6f331e8c0860a151f1f12d",
      "parents": [
        "fb82e10fedc48689495814f4f3599b9a3618eb91"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 10:16:00 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Jul 07 04:46:22 2026"
      },
      "message": "nassh: credential_cache: convert to ES6 classes\n\nShould just be indentation \u0026 class syntax changes.\n\nChange-Id: Ie943c1faba939ad7279f27e2afb9775fae8274ac\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8041349\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "fb82e10fedc48689495814f4f3599b9a3618eb91",
      "tree": "2b33b5707f834f9c675381598eb60c017b5e7ef5",
      "parents": [
        "b6c0704a513717833ca466104d08aa7c353250b0"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 07:06:47 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 09:55:54 2026"
      },
      "message": "kokoro: use libdot.run\n\nThis includes automatic logging which makes it easier to find in logs.\n\nChange-Id: I92504ea5ec9f01a56c74b4c5fd2a327d38c5cfb9\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8044426\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "b6c0704a513717833ca466104d08aa7c353250b0",
      "tree": "8098c9fd0c63d526e7e7f88a27886f5eddf4f430",
      "parents": [
        "23502bdc62aae0e8e4349547cae19d89f9b011ff"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 13:29:09 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 09:55:50 2026"
      },
      "message": "wassh: sockets: fill out SO_ERROR handling\n\nThis was a stub for a few socket types already.  We have need for the\nstate with async errors in the poll codepaths, so fill it out more\ngenerally to prepare for that.\n\nSince this is a socket-level setting, hoist it to the base class.\n\nChange-Id: Ic0f07328a66a22e757a7b668a0eb02eda2f7055d\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8044940\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "23502bdc62aae0e8e4349547cae19d89f9b011ff",
      "tree": "693f60dede267a78fab5a8196ff26505bf409f39",
      "parents": [
        "6d8a69fb3c3706a9631172254f690ee167f0bd30"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Jan 02 16:56:23 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 09:55:26 2026"
      },
      "message": "nassh: sftp: convert Packet helpers to ES6 classes\n\nShould just be indentation \u0026 class syntax changes.\n\nChange-Id: Ic22370a0a72adad1b774d356a59c91ab4fce9c18\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8044820\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "6d8a69fb3c3706a9631172254f690ee167f0bd30",
      "tree": "7657ccc1fdbc02c95d00faa27327b456b0290feb",
      "parents": [
        "76eeeb3ee94c8ac1eb1f891183a59b74ac4cd3da"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 12:12:29 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 08:43:51 2026"
      },
      "message": "wassh: sockets: support SOCK_{NONBLOCK,CLOEXEC}\n\nWhile current code doesn\u0027t use it, we\u0027ll want SOCK_NONBLOCK support for\nunittesting purposes.  The reader code already supports (non)blocking,\nso we simply need to decode the flags \u0026 pass along the state.\n\nWe don\u0027t do anything for cloexec currently because we don\u0027t support\nfork or exec, but decoding it is trivial once we support any flag.\n\nChange-Id: I67887a8b53f9fd04e9aaf827996a711b1e4a98fb\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8042065\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "76eeeb3ee94c8ac1eb1f891183a59b74ac4cd3da",
      "tree": "32435bda7a14e0d4159de4ad082b7257828f2ee2",
      "parents": [
        "ba516df4f18d25014b1d08c637d38ca3c5126c0d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 12:08:07 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 01:05:39 2026"
      },
      "message": "ssh_client: wassh-libc-sup: drop socket() argument validation\n\nAll the argument checking done in here is also performed in the syscall\nhandler by necessity -- we need to decode the domain/type to figure out\nwhat kind of socket to create, and reject unknown values.  So having the\nsame logic in the C code gains us nothing.  We don\u0027t need to optimize for\ninvalid values, and if we want to add/extend the APIs, we have to update\nboth places.  So drop all the C checks and leave it to the JS runtime.\n\nThis is also required to support flags in the type field since the C code\nrejects all such values.\n\nChange-Id: I3b02e2ca3744e97291473749230ec4d76d4a8959\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8042064\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "ba516df4f18d25014b1d08c637d38ca3c5126c0d",
      "tree": "0099af503b77c61908b4d7eeb250cf466679c143",
      "parents": [
        "52e5ac57a76eb729137182c4ebb0fed9ad18f807"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 11:52:56 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 01:04:50 2026"
      },
      "message": "wassh: sockets: create dedicated type constants\n\nThe existing filetype SOCKET_STREAM \u0026 SOCKET_DGRAM constants happen to\nhave the same value as the SOCK_STREAM \u0026 SOCK_DGRAM types, but there\u0027s\nnothing mandating this.  Since we\u0027ll be using more SOCK_xxx constants,\ndefine SOCK_STREAM \u0026 SOCK_DGRAM directly to avoid confusion.\n\nChange-Id: I3021cb55288df1ed1ad8ba6c86d0da3166fcc763\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8042063\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "52e5ac57a76eb729137182c4ebb0fed9ad18f807",
      "tree": "ea88ec66e0ae5efc88489365312fb196e3c1b3c7",
      "parents": [
        "69d97ff6e26c34ee0d43915fab2b6836deb88271"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 06:41:52 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 01:02:27 2026"
      },
      "message": "libdot: node: support custom patches for http-server\n\nSince http-server hasn\u0027t had a new release in over 4 years, and has\nsome features we need, add support for applying patches to the npm\nmodules tarball after it\u0027s been downloaded.  Then apply 2 changes\nthat were merged upstream a while ago.\n\nCOOP support is needed to allow SharedArrayBuffer in tests when\nrunning in localhost.\n\nChange-Id: I53495c876ac4bb174fb617ac3ac322d93d7e305b\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8042062\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "69d97ff6e26c34ee0d43915fab2b6836deb88271",
      "tree": "308d977f36f1bb0282bb01bdf1ef086905a7af53",
      "parents": [
        "f0d46dcdce8e3447c5dbd7658dbfe98ea289069e"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 04 21:58:31 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 01:01:14 2026"
      },
      "message": "ssh_client: openssh: drop POLLPRI stub\n\nThis was only used by the ppoll emulation which we no longer rely\non as we\u0027ve implemented it ourselves, so drop the logic.\n\nChange-Id: I3c358b02621ab933abea93fb95519a4b3ba07cc1\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8041922\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "f0d46dcdce8e3447c5dbd7658dbfe98ea289069e",
      "tree": "760f8cc0ec739f0a1c8ebbc941e2de9e4effca94",
      "parents": [
        "1bba341af9fa209ef65d2ec5fac3d736a123f24c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 04 21:46:17 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 01:01:05 2026"
      },
      "message": "ssh_client: wassh-libc-sup: add our own ppoll emulation\n\nOpenSSH emulates ppoll via pselect which seems reasonable for handling\nsignal masking, but that ends up losing POLLHUP \u0026 POLLERR events since\npselect isn\u0027t able to handle those.  It can only check read, write, and\npriority events, not errors.\n\nThe wasi-libc pselect simply ignores the signal aspects since WASI does\nnot have support for them, and then converts the fd_set\u0027s back into the\npollfd structure.  Which means we convert twice over \u0026 drop information.\n* OpenSSH: ppoll:\n  * convert pollfd to fd_set \u0026 call pselect()\n  * convert returned read/write/priority fd_sets back to pollfd\n* wasi-libc: pselect:\n  * convert fd_set to pollfd \u0026 call poll()\n  * filter POLLIN/POLLOUT/POLLPRI events to read/write/priority fd_sets\n\nSince ignoring sigmask is easy, as is converting a timespec to msecs,\ndo it ourselves so POLLHUP \u0026 POLLERR events actually get passed back.\n\nChange-Id: I9e453c9557218ba2237acd36a9edcee3cc0bfbbe\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8041921\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "1bba341af9fa209ef65d2ec5fac3d736a123f24c",
      "tree": "f7effdf5fa9afba59f8557226e8863373d22d62d",
      "parents": [
        "1927c60b889fb6cbae1353993595313ed5be4e89"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jul 01 22:14:57 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jul 06 00:58:26 2026"
      },
      "message": "nassh: omnibox: fix early calls again\n\nChrome will start a InputStarted/InputChanged/InputEntered cycle\nusing the early handlers, but when we remove the early handlers and\nadd the full ones, Chrome is still in its lifecycle.  Which means\nit doesn\u0027t call InputStarted again, only InputChanged.  Which means\nour full InputStarted is never called the first time causing no\nresults to actually be shown.\n\nTo fix, we need to listen to the started event early on, and then\nrelay that when switching to the full implementation.  Since the\nearly code is getting more complicated than 1 listener, create\nanother class to hold just the early logic.\n\nThis still isn\u0027t perfect, but is about as good as we can get: if\nthe user is changing the input while we\u0027re still loading storage,\nthen InputChanged events are dropped, and we can\u0027t provide any\nsuggestions.  Saving references to those callbacks won\u0027t help.\n\nThis is easy to test by forcing the extension service worker to\nstop running via dev tools: loading the connection manager, then\nopening dev tools \u0026 going to Application, then going to Service\nworkers shows a handy \"stop\" button next to its status.\n\nBug: b/522309379\nChange-Id: I53e9c06064115b58b2bdfc81ca0ee2caf42db133\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8033140\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "1927c60b889fb6cbae1353993595313ed5be4e89",
      "tree": "6c7bd9df73dfdb069f0e326830a6a14741a6c800",
      "parents": [
        "48efc0a01ad2364729c91b80323ee985d06a9ab1"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 04 21:44:51 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 23:33:16 2026"
      },
      "message": "libdot: format: handle plain test files\n\nThe selection logic is largely in sync with the linter.\n\nChange-Id: I5e2ad84b21466e0dbe8d070225f7c61f9251954a\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8042361\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "48efc0a01ad2364729c91b80323ee985d06a9ab1",
      "tree": "30d3705e809ce990c9490295fc3117cd161df94f",
      "parents": [
        "0142074f18659d14402bc7fb8dc4cf3ad01ffc6c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 04 21:45:40 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Jul 05 23:23:44 2026"
      },
      "message": "libdot: black: upgrade to v25\n\nChange-Id: I331c8aa57585869bccc5eb361fbaee4986eff494\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8041923\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "0142074f18659d14402bc7fb8dc4cf3ad01ffc6c",
      "tree": "93f2b451bab1ad2cdc33b86da9b7a0577b5209c1",
      "parents": [
        "e41589a74a0e91a91c1e5215f59cb38dec0a854b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jul 01 21:05:43 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Jul 04 23:07:23 2026"
      },
      "message": "wassh: sockets: add more graceful error handling\n\nSince relay connections were converted to promises, they don\u0027t return\nerrors, they reject (throw) errors.  Update RelaySocket accordingly.\n\nIf creating direct TCP or UDP sockets fails, make sure we don\u0027t try\nto poll for data on readers that don\u0027t exist, and pass the error back\ninstead of crashing and/or returning success.\n\nIf code attempts to write to an unconnected direct TCP socket that,\nreturn EPIPE instead of crashing.\n\nBug: b/529962616\nBug: b/521515745\nChange-Id: I7d7b810b907a4e605acfecb28b1cc1171a786177\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8032960\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "e41589a74a0e91a91c1e5215f59cb38dec0a854b",
      "tree": "d2f9fe312383bad19358740b8adc6a7d66e70ec9",
      "parents": [
        "7c4b62fe0eee83f2d1386e878c9593e0cdb454db"
      ],
      "author": {
        "name": "Jimmy Chang",
        "email": "jimmychang@google.com",
        "time": "Wed Jul 01 18:03:14 2026"
      },
      "committer": {
        "name": "Jimmy Chang",
        "email": "jimmychang@google.com",
        "time": "Wed Jul 01 21:06:05 2026"
      },
      "message": "nassh: google: Use v4/Websocket for SUP SSH Relay.\n\nThis CL updates the default proxy mode for Google SSH Relay to\ncorp-relay-v4@google.com, and updates the corresponding unit tests to\nmatch the new defaults.\n\nBug: 524583421\nChange-Id: Ice473407930c61b32e267efb9545347ea9fc7214\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8032163\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "7c4b62fe0eee83f2d1386e878c9593e0cdb454db",
      "tree": "c66c4824bd6f71675b80c88de610d2f253970dfa",
      "parents": [
        "b6ad28425b657ee3fa20bbc6508bf87410cfce49"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jul 01 02:49:38 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jul 01 10:18:39 2026"
      },
      "message": "kokoro: build: log current depot_tools rev\n\nThis helps in case of tracking regressions coming from depot_tools.\n\nBug: 529822095\nChange-Id: I869781e1b2ed86694929807ded5d338c6fab1590\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/8025297\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "b6ad28425b657ee3fa20bbc6508bf87410cfce49",
      "tree": "5cabffbebfef149c7a72be4bb46f00922242cf80",
      "parents": [
        "4e4c1530cf4e054cf6634fc834aff28d6ffe82a1"
      ],
      "author": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Mon Jun 22 15:36:20 2026"
      },
      "committer": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Fri Jun 26 13:59:05 2026"
      },
      "message": "terminal: tmux: CTRL-C force detaches in error\n\nWhen in error state, CTRL-C and CTRL-D commands send a raw newline\nto force detach the session.\n\nBug: 522751011\nChange-Id: Ieefe3281bf84bfa1a9d3ad9412f02426d5e90283\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7978001\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "4e4c1530cf4e054cf6634fc834aff28d6ffe82a1",
      "tree": "d7a11078a8b543c4c32fb7c6351c741e73e6d7d8",
      "parents": [
        "1ee9309a672a0c096ca4ebe6b6d2f8e67b86b23a"
      ],
      "author": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Wed Jun 24 11:18:57 2026"
      },
      "committer": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Wed Jun 24 21:44:04 2026"
      },
      "message": "terminal: tmux: fix %error handling for commands\n\nWhen a command gets a %error response back, the command\nwas not marked as completed nor removed from the command\nstack. This meant that the controller was still waiting\nfor a %end for that command.\n\nBug: 522751011\nChange-Id: Ia6dc154ac1eabeff2c26756ed108accc9c142e2d\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7993415\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "1ee9309a672a0c096ca4ebe6b6d2f8e67b86b23a",
      "tree": "6d7173119a131a6bb72c85da25f7470aa11ea0ef",
      "parents": [
        "3679ceaf197403e7350f6b0489759afdf637ffff"
      ],
      "author": {
        "name": "Jimmy Chang",
        "email": "jimmychang@google.com",
        "time": "Tue Jun 23 22:11:22 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jun 24 01:08:03 2026"
      },
      "message": "nassh: google: Route SUP SSH Relay from ssh-relay.corp.google.com to sup-ssh-relay.corp.google.com.\n\nThis CL updates the default proxy host for Google SSH Relay to sup-ssh-relay.corp.google.com, and updates the corresponding unit tests.\n\nR\u003djoelhockey@chromium.org, vapier@chromium.org\n\nBug: 524583421\nChange-Id: I04be294e08986b435c26e8e5016a1283aded99ff\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7988633\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "3679ceaf197403e7350f6b0489759afdf637ffff",
      "tree": "bf1d87c226ccdb5f18a25b862f4d6c3f550605ff",
      "parents": [
        "118a2a2b756d8fc6d35ce5cf945cdb7f98a9f684"
      ],
      "author": {
        "name": "Nathaniel Braun",
        "email": "nathanielbraun@google.com",
        "time": "Thu Jun 11 15:07:26 2026"
      },
      "committer": {
        "name": "Nathaniel Braun",
        "email": "nathanielbraun@google.com",
        "time": "Tue Jun 16 07:07:07 2026"
      },
      "message": "hterm: find_bar_tests: fix race condition\n\nChange-Id: I0f1c9b57a4bc742b9db4f2047f6e10bce7210683\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7926208\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "118a2a2b756d8fc6d35ce5cf945cdb7f98a9f684",
      "tree": "8e7dd3cb646520706e5253471606e485643247f6",
      "parents": [
        "481608cca690b4ae9f63ef715ab8c4ea666dedc0"
      ],
      "author": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Fri Jun 12 17:36:00 2026"
      },
      "committer": {
        "name": "Niel Markwick",
        "email": "nielm@google.com",
        "time": "Sat Jun 13 16:27:52 2026"
      },
      "message": "terminal: ensure complete URL passed to openWindow\n\nterminal_private_api.cc checks for the correct protocol and host when\nopening a new tab, so ensure these are present when calling\nchrome.terminalPrivate.openWindow()\n\nBug: 522629295\nChange-Id: I2312373b2cf0df074ac3ffc1e5b0e506a6ea8ee5\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7927830\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "481608cca690b4ae9f63ef715ab8c4ea666dedc0",
      "tree": "d3b5089b97452cb04a26f09326fa08d631788c2c",
      "parents": [
        "ba5fa6c68ee98959f2b34f23856e02dab89db2d5"
      ],
      "author": {
        "name": "Nathaniel Braun",
        "email": "nathanielbraun@google.com",
        "time": "Thu Jun 11 10:13:58 2026"
      },
      "committer": {
        "name": "Nathaniel Braun",
        "email": "nathanielbraun@google.com",
        "time": "Thu Jun 11 21:38:42 2026"
      },
      "message": "hterm: scrollport: set initial background color to transparent\n\nBug: 260528908\nChange-Id: I53f5d974c21176b97f1c874362a89a39bc052633\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7922416\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "ba5fa6c68ee98959f2b34f23856e02dab89db2d5",
      "tree": "fda31fdef890aaf9de25dbc4e14331e7ccf73da6",
      "parents": [
        "1181626ff13f0cefc7144fe1c609ef0369a17756"
      ],
      "author": {
        "name": "Yiyue Wang",
        "email": "yiyuew@google.com",
        "time": "Fri May 29 05:57:09 2026"
      },
      "committer": {
        "name": "Yiyue Wang",
        "email": "yiyuew@google.com",
        "time": "Tue Jun 09 02:05:41 2026"
      },
      "message": "nassh: ssh_config: support policy content\n\nCombine the content from virtual storage and SKE to form ssh_config\n\nChange-Id: I41a2f6d4549e09476c552e23aa3d350012826fc5\nBug: b/507718511\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7835327\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "1181626ff13f0cefc7144fe1c609ef0369a17756",
      "tree": "31483e413ba140e7b05393b3c2a6772a629126d2",
      "parents": [
        "2582c8a8a8c5f9d158b604479140390dcd759158"
      ],
      "author": {
        "name": "Joel Hockey",
        "email": "joelhockey@chromium.org",
        "time": "Tue Jun 02 01:47:10 2026"
      },
      "committer": {
        "name": "Joel Hockey",
        "email": "joelhockey@chromium.org",
        "time": "Tue Jun 02 21:53:08 2026"
      },
      "message": "Revert \"terminal: disable webgl until chrome is fixed\"\n\nThis reverts commit a1ff7b76874ab08ccc97b98ab3382824579ae744.\n\nReason for revert: underlying problem fixed\nReported fixed in crrev.com/c/7882550\n\nOriginal change\u0027s description:\n\u003e terminal: disable webgl until chrome is fixed\n\u003e\n\u003e Bug: 500797550\n\u003e\n\u003e Change-Id: Ib8c045aa9babbff81ac7b924c68ab39ccaa6415b\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7839021\n\u003e Tested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n\u003e Reviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n\nBug: 500797550\nChange-Id: I623a9200ea069f3724d69164bb2572212e0a08f4\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7892785\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "2582c8a8a8c5f9d158b604479140390dcd759158",
      "tree": "ce14a57f159237b4ccf5672be82fb3e1bef0b2b2",
      "parents": [
        "a80609810aef9f92962e345421d827e92ecb4fc9"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat May 30 21:33:07 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jun 01 00:05:59 2026"
      },
      "message": "nassh: release 0.78\n\nChange-Id: Iea2b91ca3911990ac8277e606853fc4c30734ac3\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7886759\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "a80609810aef9f92962e345421d827e92ecb4fc9",
      "tree": "4fb82206423625d401e60a7721ae43e75a0d2da0",
      "parents": [
        "a1ff7b76874ab08ccc97b98ab3382824579ae744"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat May 30 21:37:50 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Jun 01 00:05:47 2026"
      },
      "message": "libdot: lint: treat .prettierignore as plain text\n\nChange-Id: Ia049ada224418f7a787a3dcd8dc20c3278069e03\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7887386\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "a1ff7b76874ab08ccc97b98ab3382824579ae744",
      "tree": "9f7a9204aa10d2363019aebd69f2c388bb2196cf",
      "parents": [
        "eaa745230ed411fc83792eb63486cebeca93309f"
      ],
      "author": {
        "name": "Joel Hockey",
        "email": "joelhockey@chromium.org",
        "time": "Tue May 12 07:19:20 2026"
      },
      "committer": {
        "name": "Joel Hockey",
        "email": "joelhockey@chromium.org",
        "time": "Tue May 12 22:41:43 2026"
      },
      "message": "terminal: disable webgl until chrome is fixed\n\nBug: 500797550\n\nChange-Id: Ib8c045aa9babbff81ac7b924c68ab39ccaa6415b\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7839021\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "eaa745230ed411fc83792eb63486cebeca93309f",
      "tree": "92a01bf75cf0d145cede3bbc266503d4490d09bb",
      "parents": [
        "aaab893f9cf204007c9435a8d05ff4801aa1b32e"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Apr 30 18:10:38 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 12 18:26:58 2026"
      },
      "message": "hterm: intl-segmenter: drop Intl.Segmenter polyfill\n\nThis API is widely available as of 2024 (with Chrome releasing it back\nin 2020).  Drop it from hterm since we aren\u0027t really testing browsers\nthat old, and WASM requires much newer versions anyways.  While we can\nuse hterm w/out WASM of course, 2 years is probably fine runway.\n\nChange-Id: Icb44da1ee94386b8604df8600e1d10a0735efb85\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7834146\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "aaab893f9cf204007c9435a8d05ff4801aa1b32e",
      "tree": "62ab1200b18bf90a44bc5ba98e3879fb19840f88",
      "parents": [
        "62c0b1d553328ed6e96e6ce785f77cbb067dfec6"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 05 18:49:21 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 12 18:06:06 2026"
      },
      "message": "nassh: sockets: enable direct sockets in the stable version\n\nWe haven\u0027t had any reports since this went out in Jan 2026, so roll\nout to the stable population.\n\nBug: b/277392663\nChange-Id: I154ba4e17465b23b082e0933aaad29d238eea7b8\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7819056\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "62c0b1d553328ed6e96e6ce785f77cbb067dfec6",
      "tree": "9223fc09944d08959e3551ec0c30f68244413042",
      "parents": [
        "386aa6ad208ec08e3a58132f6399a7b2257264ac"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon May 11 16:57:34 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 12 03:19:54 2026"
      },
      "message": "nassh: plugin: update to 0.77\n\nChange-Id: I65248c1a0950db8e4ea95c793bbe767bd19be5c6\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7834919\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "386aa6ad208ec08e3a58132f6399a7b2257264ac",
      "tree": "4fbdf7cd1f3282caadeee37a6d5c15bab35aff18",
      "parents": [
        "228bccc3c475dc5d13adde96c9c3d61c1f088d2f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed May 06 03:15:59 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat May 09 12:28:45 2026"
      },
      "message": "nassh: release 0.77\n\nChange-Id: I274086509bb7da6104f957b06c949a0be691d543\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7818950\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "228bccc3c475dc5d13adde96c9c3d61c1f088d2f",
      "tree": "96f2f60bf198c2e65e5fbc1d37bd1cb7e3774269",
      "parents": [
        "dc3700c1ed825cd637504d8b9be9feebc031df30"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 05 01:23:31 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri May 08 16:51:09 2026"
      },
      "message": "mosh: drop C++ exceptions workarounds\n\nNow that WASI SDK supports C++ exceptions, and we enable that,\ndrop the custom mosh patches to workaround those not enabled.\n\nChange-Id: I011eb7312971ced620b667997307a2b539b8a827\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7818953\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "dc3700c1ed825cd637504d8b9be9feebc031df30",
      "tree": "2ec753d658014f0167cd0677a005c76a1474687d",
      "parents": [
        "4413eff1f0d7bd538073410e667142542028048b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 05 01:22:25 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 07 03:34:17 2026"
      },
      "message": "ssh_client: enable C++ exceptions for threaded targets\n\nThe threaded targets are used to build mosh, so enable C++ exceptions\nthere since latest WASI SDK supports it, and mosh uses it.\n\nChange-Id: I24bbfe2157aa619da57df8af29133952d1c5d8c8\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7818952\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "4413eff1f0d7bd538073410e667142542028048b",
      "tree": "e1f16a4b49cc5049aa048052d4768dffdade31f0",
      "parents": [
        "42c0c0dbd1434248f91f03fee7fcfd4edb4751b2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 05 01:24:23 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 07 02:28:45 2026"
      },
      "message": "wassh-libc-sup: dynamically disable C++ exception fallbacks\n\nIf the current build is enabling C++ exception support, disable\nthe stubs entirely.\n\nChange-Id: I52eff2e2f75190f7de72e23b45ad207abbd821e3\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7818951\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "42c0c0dbd1434248f91f03fee7fcfd4edb4751b2",
      "tree": "2b70baf40bf265c952a7421c7416034bad582798",
      "parents": [
        "92256e04763e4f059ec6e04775f3c197d7f1542f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 05 01:18:31 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed May 06 03:02:31 2026"
      },
      "message": "ssh_client: wasi-sdk: upgrade to 33.0\n\nThis should support C++ exceptions now which should allow us to\nsimplify the mosh port.\n\nChange-Id: I0130a83fcc69f279c55562d931fd5f1c805eb37e\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7819054\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "92256e04763e4f059ec6e04775f3c197d7f1542f",
      "tree": "e1e9d05324a45e0061a31e462bd4b70aa1c2c4e3",
      "parents": [
        "2a7d9a1e50c05e42c7a01bb053f09fc950414a7d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Apr 28 13:35:11 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri May 01 00:33:32 2026"
      },
      "message": "kokoro: container: add missing load help text\n\nChange-Id: I6a78738b67bccb5d80917092ea08cc9b14b5dca6\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7807827\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "2a7d9a1e50c05e42c7a01bb053f09fc950414a7d",
      "tree": "fbb7316c74b41e1d6aca8c7fc84d08f2925ce8fb",
      "parents": [
        "04fa2d6078d4cf38723ce8f157ef5c552e7fcbfd"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Apr 29 01:24:04 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Apr 29 06:38:36 2026"
      },
      "message": "libdot: raise min Python version to 3.11\n\nNow that we use trixie in the build env, and we already use vpython\nwith 3.11, and CrOS uses 3.11, we can safely raise the min version.\n\nChange-Id: I0d55a53bd1a6744fdfca577f2242ba182c873179\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7801066\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "04fa2d6078d4cf38723ce8f157ef5c552e7fcbfd",
      "tree": "4f687542c3e75f1b832566f96904fdf44fbaf1ba",
      "parents": [
        "13aa2191d65bc922d415b64a2e3c56d61431c817"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Apr 28 13:31:55 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Apr 28 23:58:12 2026"
      },
      "message": "docker: update container to trixie\n\nBookworm standard security support ends in June 2026 (switches to LTS),\nso upgrade our container to trixie.  It\u0027s available in Crostini now so\npeople should be able to easily support it.\n\nChange-Id: I6d5709430e3a7625ab373801085454417a074697\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7796247\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "13aa2191d65bc922d415b64a2e3c56d61431c817",
      "tree": "5d74e4ca26af033f04c507d1208b244a1bbc1ab0",
      "parents": [
        "ea8a17bc794e7ff61c1be6c6c82c674302be0f49"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Apr 06 14:34:36 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Apr 10 19:32:36 2026"
      },
      "message": "libdot: fetch: increase retry count\n\nCurrently we retry 4 times (so 5 attempts total).  Since we backoff by\nx2 each time, that means our attempt window is \u003c20 seconds before we\ngive up (1 + 2 + 4 + 8 \u003d 15 seconds, plus network delays).  Increase\nthis to 7 retries (so 8 attempts total) which stretches us out to over\n2 minutes in total.  If the server/network is having trouble, then this\nis still reasonable.\n\nChange-Id: I0a84a02a4414181534d76ca5c5de40b26df4e29f\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7731981\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "ea8a17bc794e7ff61c1be6c6c82c674302be0f49",
      "tree": "ff87624ea82ad2ae4aeab10e0a67f2eef229d41d",
      "parents": [
        "e5627c2f8e2db93da77b2a01b3d53e99d6e8b5c7"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Apr 02 16:18:05 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Apr 04 18:52:50 2026"
      },
      "message": "ssh_client: openssh: upgrade to 10.3\n\nChange-Id: I13de052f0b0f2f3987e637dc6f6cb62ff17d935f\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7726824\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "e5627c2f8e2db93da77b2a01b3d53e99d6e8b5c7",
      "tree": "7779a5c9df3a04ab797f48adae7b08fcd4f2daf1",
      "parents": [
        "be11860ed2b3c2a005ea660aa4a06ab4fb5aa62f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Mar 21 03:18:07 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Apr 04 17:58:49 2026"
      },
      "message": "ssh_client: wasi-sdk: upgrade to 32.0\n\nChange-Id: Idcc4e6440a736a0c7e7119a602750f3190b7438e\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7722819\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "be11860ed2b3c2a005ea660aa4a06ab4fb5aa62f",
      "tree": "00c742aca18fed040356e0bd2ed1dfdb619e1e6b",
      "parents": [
        "def50387220d1394399f5315904ef6288155bde7"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Feb 13 04:42:46 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Apr 04 15:01:55 2026"
      },
      "message": "bazel: ignore generated dirs\n\nChange-Id: I0343ee7477ead5a0cf1db17c51a108352229cd8a\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7570847\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "def50387220d1394399f5315904ef6288155bde7",
      "tree": "e65dd5f3ab9494d5d060abc5852b7d9009483c3a",
      "parents": [
        "531352fc268f9370ae2b7eea2520c343616f1730"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Apr 01 19:44:18 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Apr 04 15:01:07 2026"
      },
      "message": "nassh: plugin: update to 0.76\n\nChange-Id: Ibb7a380f50d3c38769037f147e57102521edbc90\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7722818\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "531352fc268f9370ae2b7eea2520c343616f1730",
      "tree": "af40e1ab09706b8728785266e8bc5dfec4317d0c",
      "parents": [
        "73d0048c5578739b80ae005cfbab3a95669eec48"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Apr 04 06:27:57 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Apr 04 12:55:52 2026"
      },
      "message": "libdot: fetch: do not rely on server Content-Length header\n\nIf the response does not include the Content-Length header,\ncompute the final download length ourselves before checking.\n\nChange-Id: I07658e83b08622726425de808759a5825aaa2289\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7727153\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "73d0048c5578739b80ae005cfbab3a95669eec48",
      "tree": "0c0e997f06d0bbd8eb7757209fa68149b329169c",
      "parents": [
        "e18a2d269725b5d00c35ff9fba887b9c833237cf"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Mar 01 05:30:05 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu Apr 02 16:19:13 2026"
      },
      "message": "ssh_client: protobuf: upgrade to 3.20.3\n\nThis is the last release series to support autotools.\nNewer versions would require switching to cmake.\n\nChange-Id: Iffbaab56ae559f9bcc8003d5fcecf5cadd0ccced\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7620786\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "e18a2d269725b5d00c35ff9fba887b9c833237cf",
      "tree": "2d1934a6fef1b24458313e58a9f57ffe4bb730dd",
      "parents": [
        "dcdd6f1a88f9c8a6a24536894df51e2593e2c6fb"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Mar 21 03:16:32 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Mar 24 03:16:50 2026"
      },
      "message": "ssh_client: zlib: update to 1.3.2\n\nChange-Id: Idf826060abd64eb2d383072698cdc401861ef81e\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7688935\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "dcdd6f1a88f9c8a6a24536894df51e2593e2c6fb",
      "tree": "5e370fc9c7b514a2a8e44f6a62240c63eec5c258",
      "parents": [
        "80b8c22b99ce91409a7d850793d26100623f02ad"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Mar 21 03:16:20 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sun Mar 22 22:59:08 2026"
      },
      "message": "wassh: readpassphrase: add missing include for size_t\n\nChange-Id: I2788c3866e02334594115f023c6916264ba280cd\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7688934\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\n"
    },
    {
      "commit": "80b8c22b99ce91409a7d850793d26100623f02ad",
      "tree": "3405a2c22768c1e5b27e76a5687a16c8ff1dc598",
      "parents": [
        "023e9663c5e537c49d2cb76b1739d731a3917133"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Sat Mar 14 01:10:10 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Mar 18 21:13:34 2026"
      },
      "message": "nassh: release 0.76\n\nChange-Id: Ibf505d736f8b2f481991eb9c01f5ae37dcfb87c3\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7664086\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "023e9663c5e537c49d2cb76b1739d731a3917133",
      "tree": "51361516cd6a3ef2a505093f8a250982913021c2",
      "parents": [
        "ed86bc322850a8717793df165f04a8055d655fb2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Mar 09 04:26:33 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Mar 10 15:03:18 2026"
      },
      "message": "wassh: GAI: handle trailing dot in localhost checks\n\nThe trailing dot in DNS is rarely used, but is correct, so check for i\nwith the various hardcoded localhost names.\n\nBug: b/262350367\nChange-Id: I3f6f947ca2d197df974d62976a248e9322aa9603\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7647921\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "ed86bc322850a8717793df165f04a8055d655fb2",
      "tree": "02bca0c47e9cc63111b1f442b8825080aa9b172b",
      "parents": [
        "8da53f1344e70eba529f9f6b5dcfded86867de6d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Mar 09 04:22:24 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Mar 10 14:18:45 2026"
      },
      "message": "wassh: GAI: drop localdomain hardcoding\n\nI don\u0027t recall why I included this in the initial implementation, and\nsince I can\u0027t find any RFCs justifying its existence, and it\u0027s not how\ne.g. the GNU libc resolver works, drop it.\n\nBug: b/262350367\nChange-Id: I6d17841152d8dff8d92e73ec3b1b4ef9fc947e39\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7647920\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "8da53f1344e70eba529f9f6b5dcfded86867de6d",
      "tree": "12b2d2fc2e45092b0a26dc277c55851fe19f3193",
      "parents": [
        "af300ffed27e27ef634fc3ceca1aedda3a9e1734"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Mar 09 03:49:49 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Mar 10 04:51:56 2026"
      },
      "message": "libdot: colors: simplify hsla() handling\n\nSince hsla() is an alias for hsl(), there\u0027s no need to handle it\ndifferently.  Normalize everything to \"HSL\", use a single regex\nto match it, and always return hsl() in results.\n\nBug: b/490478687\nChange-Id: I447e29d12c06469e5076e24be59612c853e7b6e8\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7646335\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "af300ffed27e27ef634fc3ceca1aedda3a9e1734",
      "tree": "d2467cc5aa06318ccfc649765095cd316be6f67b",
      "parents": [
        "42fbcbdf4a1a8a416248b19434af4c735409b092"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Mon Mar 09 03:29:56 2026"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Mar 10 04:51:39 2026"
      },
      "message": "libdot: colors: simplify rgba() handling\n\nSince rgba() is an alias for rgb(), there\u0027s no need to handle it\ndifferently.  Normalize everything to \"RGB\", use a single regex\nto match it, and always return rgb() in results.\n\nBug: b/490478687\nChange-Id: I7e104e5a8f76ef3cbd1536a3fd3e9aa838eaf232\nReviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/7646334\nReviewed-by: Joel Hockey \u003cjoelhockey@chromium.org\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    }
  ],
  "next": "42fbcbdf4a1a8a416248b19434af4c735409b092"
}
