)]}'
{
  "log": [
    {
      "commit": "beeb8d40237f15489da2f62971057c43170d5424",
      "tree": "379251ae845860788874a15b49300e73e4c35168",
      "parents": [
        "98affec7f0a7c474a060225255a8cbfb3527df46",
        "95d6596d61484848174f2ce660cb232ef0474104"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Oct 27 14:54:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:54:52 2026 -0400"
      },
      "message": "Merge pull request #73 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/body-parser-2.4.0\n\nbuild(deps): bump body-parser from 2.3.0 to 2.4.0 in /mcp/ponymail-mcp"
    },
    {
      "commit": "98affec7f0a7c474a060225255a8cbfb3527df46",
      "tree": "b6d432eff5bf6c2dcfbd9380a834e50f7371c49f",
      "parents": [
        "ce3443d495907ece51b6145c746c87bcb3862340",
        "66718ec74f8d0f3cbd31cbc9d7d3116ba20a0341"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Oct 27 14:54:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:54:31 2026 -0400"
      },
      "message": "Merge pull request #72 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/fast-uri-3.1.9\n\nbuild(deps): bump fast-uri from 3.1.8 to 3.1.9 in /mcp/ponymail-mcp"
    },
    {
      "commit": "ce3443d495907ece51b6145c746c87bcb3862340",
      "tree": "3c0ec3531e9115888d3ec3fa9ac469e18a9a293f",
      "parents": [
        "8459ae5249c2391447e4f2a172e86bd6a42149ce",
        "8212e53f4144360b2686807449edaf9919dd5d0e"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Oct 27 14:53:19 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:53:19 2026 -0400"
      },
      "message": "Merge pull request #71 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/zod-4.6.7\n\nbuild(deps): bump zod from 4.4.3 to 4.6.7 in /mcp/ponymail-mcp"
    },
    {
      "commit": "8459ae5249c2391447e4f2a172e86bd6a42149ce",
      "tree": "0bd4887b856adac1beb6a170fdd964591aa73dc6",
      "parents": [
        "42d0b73150c6a9b09525d0dc40b67c8e561d7fee",
        "15d4418a4e1adb31eae6a697c77e86b87dd1ee2f"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Oct 27 14:52:35 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:52:35 2026 -0400"
      },
      "message": "Merge pull request #70 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/ip-address-10.7.5\n\nbuild(deps): bump ip-address from 10.7.3 to 10.7.5 in /mcp/ponymail-mcp"
    },
    {
      "commit": "42d0b73150c6a9b09525d0dc40b67c8e561d7fee",
      "tree": "4066f7709fac49c1b84294743aaf386a94b4b6fc",
      "parents": [
        "e236ca1a47bb5b1a7fe6c993a9b77885dfadafc1",
        "5937070a3f9c41a6d26e79468ed34aad3980ff80"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Oct 27 14:50:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:50:06 2026 -0400"
      },
      "message": "Merge pull request #66 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/hono-4.13.13\n\nbuild(deps): bump hono from 4.13.7 to 4.13.13 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "e236ca1a47bb5b1a7fe6c993a9b77885dfadafc1",
      "tree": "7c4539a35bf232802be04a5531da14b9d6061d37",
      "parents": [
        "3793d2e35763e9a122d19b82a24d7677ccba1cf1",
        "bb3d710d4d0b3ddafdd97046fe13180875e6027f"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Oct 27 14:44:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:44:23 2026 -0400"
      },
      "message": "Merge pull request #67 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/modelcontextprotocol/sdk-1.32.0\n\nbuild(deps): bump @modelcontextprotocol/sdk from 1.31.0 to 1.32.0 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "95d6596d61484848174f2ce660cb232ef0474104",
      "tree": "05a7b284c017db23352270e336e1ea7ea4eec2d4",
      "parents": [
        "3793d2e35763e9a122d19b82a24d7677ccba1cf1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 18:03:40 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 18:03:40 2026 +0000"
      },
      "message": "build(deps): bump body-parser from 2.3.0 to 2.4.0 in /mcp/ponymail-mcp\n\nBumps [body-parser](https://github.com/expressjs/body-parser) from 2.3.0 to 2.4.0.\n- [Release notes](https://github.com/expressjs/body-parser/releases)\n- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)\n- [Commits](https://github.com/expressjs/body-parser/compare/v2.3.0...v2.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: body-parser\n  dependency-version: 2.4.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "66718ec74f8d0f3cbd31cbc9d7d3116ba20a0341",
      "tree": "1b7d27817115e391c14d07e058df71baaf525d28",
      "parents": [
        "3793d2e35763e9a122d19b82a24d7677ccba1cf1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 18:01:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 18:01:43 2026 +0000"
      },
      "message": "build(deps): bump fast-uri from 3.1.8 to 3.1.9 in /mcp/ponymail-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.8 to 3.1.9.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.8...v3.1.9)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.9\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8212e53f4144360b2686807449edaf9919dd5d0e",
      "tree": "12c8fcbad2191b01a8942fce6ec7d569ba8520c4",
      "parents": [
        "3793d2e35763e9a122d19b82a24d7677ccba1cf1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 18:01:38 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 18:01:38 2026 +0000"
      },
      "message": "build(deps): bump zod from 4.4.3 to 4.6.7 in /mcp/ponymail-mcp\n\nBumps [zod](https://github.com/colinhacks/zod) from 4.4.3 to 4.6.7.\n- [Release notes](https://github.com/colinhacks/zod/releases)\n- [Commits](https://github.com/colinhacks/zod/compare/v4.4.3...v4.6.7)\n\n---\nupdated-dependencies:\n- dependency-name: zod\n  dependency-version: 4.6.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "15d4418a4e1adb31eae6a697c77e86b87dd1ee2f",
      "tree": "2d239464d71393cc7f297c3eb6a42327e805d105",
      "parents": [
        "3793d2e35763e9a122d19b82a24d7677ccba1cf1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 18:01:19 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 18:01:19 2026 +0000"
      },
      "message": "build(deps): bump ip-address from 10.7.3 to 10.7.5 in /mcp/ponymail-mcp\n\nBumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.7.3 to 10.7.5.\n- [Release notes](https://github.com/beaugunderson/ip-address/releases)\n- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.7.3...v10.7.5)\n\n---\nupdated-dependencies:\n- dependency-name: ip-address\n  dependency-version: 10.7.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "3793d2e35763e9a122d19b82a24d7677ccba1cf1",
      "tree": "be022834212f8877d729570cf07b3a2c3e22a58d",
      "parents": [
        "64144430177093440b4d5e92ad893aaf9517ec84"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Mon Oct 26 18:11:42 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 18:11:42 2026 +0100"
      },
      "message": "ponymail-mcp: add save_attachments to download an email\u0027s attachments (#69)\n\nget_email lists attachments but nothing could fetch them, and get_source and\nget_mbox truncate their output, so a base64-encoded attachment was always cut\noff. save_attachments downloads each attachment through PonyMail\u0027s attachment\nendpoint (/api/email with attachment\u003dtrue and the attachment hash) and writes\nit to a local directory. The bytes never go into the tool result, only the\nsaved names, sizes, content types and SHA-256 digests.\n\nWhere and how it writes is locked down:\n\n- Saving is disabled unless PONYMAIL_ATTACHMENT_DIRS lists the absolute\n  directories the server may write into. The roots are created and pinned\n  at startup (canonical path, device and inode); a root later replaced,\n  moved or turned into a symlink makes the tool refuse to save. A root that\n  is a symlink, not owned by the server\u0027s user, writable by group or\n  others, or below a directory owned by another user or writable by group\n  or others (sticky ones such as /tmp aside) is refused at startup, and so\n  is a configured path through a component (a symlink included) owned by\n  another user, checked before and after creating it, so a directory or\n  link someone else planted is never trusted.\n- The target dir must be one of the roots or inside one, checked with\n  symlinks resolved, both before and after the directory is created, which\n  is created at the canonical path the check approved. It must\n  be absolute, local (UNC and device paths are refused before any lookup)\n  and have no \".\" or \"..\" segments.\n- Node has no openat(), so after creating the file and before writing to it\n  the server confirms the directory is still the one it checked and the file\n  is still the one it opened. These path checks are defence in depth: the\n  README requires the roots to be read-only to the caller (in Claude Code,\n  an Edit() deny rule, which also stops sandboxed commands writing or\n  renaming there), so nothing can race them.\n- Sender-supplied filenames are reduced to ASCII [A-Za-z0-9._-] (accents\n  folded, any other non-ASCII dropped), with no path separators, no \"..\",\n  and no leading dot, falling back to attachment-\u003chash\u003e; Windows device\n  names (CON, NUL.txt, COM1, ...) get a leading underscore.\n- Files are created 0600 with O_EXCL, so an existing file or symlink is\n  never overwritten or written through; a numbered sibling is used instead.\n- The body is read incrementally and cancelled once it passes the reported\n  size (or 50 MB when none is reported), then checked against the size and\n  SHA-256 hash PonyMail reports. Attachments reported over 50 MB are skipped.\n- The list restrictions of get_email apply.\n\nSecurity reports often send the proof of concept as a password-protected\nZIP with the password in the message text. Each saved file is checked for\nits format (ZIP encrypted or not, 7z, RAR, PGP), and with `password` ZIP\nattachments (ZipCrypto or AES) are decrypted and extracted into\n\u003cname\u003e-extracted/ through the same guarded writer: every path component\nsanitized, symlink and special entries never created, CRC-32 checked, and\nat most 1000 entries read (streamed from the central directory) and 200 MB\ninflated per archive, failed entries included, with each entry cut off once\nit inflates past its declared size. Whatever can refuse the whole archive\nruns before the first write: escaping entry names, and the password, proven\nby decrypting the first encrypted entry in full. A later failure is\nreported together with the files already extracted. Sanitized names that\ncollide with a directory are renumbered, and the result caps how many\nentries it lists and how long each name is.\nThe password is never echoed. This adds @zip.js/zip.js (BSD-3-Clause, no\ndependencies); 7z, RAR and PGP files are saved but not decrypted.\n\nget_email now reads Foal\u0027s list-shaped attachments field correctly and shows\neach attachment\u0027s hash, which save_attachments accepts to select a subset.\n\nGenerated-by: Claude Code (Claude Opus 5.5)"
    },
    {
      "commit": "64144430177093440b4d5e92ad893aaf9517ec84",
      "tree": "6a918cdc9b26673cd160726383bd0c790e44a40a",
      "parents": [
        "a075cf80de67beed107af56197fdf9a590767c51"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 24 19:17:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 19:17:18 2026 +0200"
      },
      "message": "ponymail-mcp: clear a kept login profile\u0027s cookies so every login asks for 2FA (#68)\n\nWith PONYMAIL_BROWSER_PROFILE\u003dpersistent the login profile also kept its\ncookies, including the ASF OAuth session, so a later login could complete\nwithout the password or 2FA. The kept profile now keeps only saved\npasswords: its cookies are cleared over the DevTools pipe before the\nwindow closes, and its cookie files are deleted after the browser exits\nand before the next login starts. Startup refuses to launch the kept\nprofile when that cleanup cannot run.\n\nGenerated-by: Claude Opus 5"
    },
    {
      "commit": "bb3d710d4d0b3ddafdd97046fe13180875e6027f",
      "tree": "40d2d544f3603f58e381b4fdc7d5ec9f0c5198e8",
      "parents": [
        "a075cf80de67beed107af56197fdf9a590767c51"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 18:59:55 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 18:59:55 2026 +0000"
      },
      "message": "build(deps): bump @modelcontextprotocol/sdk in /mcp/apache-projects-mcp\n\nBumps [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) from 1.31.0 to 1.32.0.\n- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)\n- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/1.31.0...1.32.0)\n\n---\nupdated-dependencies:\n- dependency-name: \"@modelcontextprotocol/sdk\"\n  dependency-version: 1.32.0\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "5937070a3f9c41a6d26e79468ed34aad3980ff80",
      "tree": "854b7d9163cc60c61e6969cfc5f5dfdf76f8d6c7",
      "parents": [
        "a075cf80de67beed107af56197fdf9a590767c51"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 21:43:08 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 21:43:08 2026 +0000"
      },
      "message": "build(deps): bump hono in /mcp/apache-projects-mcp\n\nBumps [hono](https://github.com/honojs/hono) from 4.13.7 to 4.13.13.\n- [Release notes](https://github.com/honojs/hono/releases)\n- [Commits](https://github.com/honojs/hono/compare/v4.13.7...v4.13.13)\n\n---\nupdated-dependencies:\n- dependency-name: hono\n  dependency-version: 4.13.13\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "a075cf80de67beed107af56197fdf9a590767c51",
      "tree": "89a24b601e29026c55da25ee24cd029e05fc6e30",
      "parents": [
        "11d5a39fad2f26bf675b88c4ca16efbc13682902"
      ],
      "author": {
        "name": "Mike Drob",
        "email": "mdrob@apache.org",
        "time": "Tue Oct 20 14:03:15 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 21:03:15 2026 +0200"
      },
      "message": "Support running MCP with a proxy (#55)\n\n* Support running MCP with a proxy\n\n- Bump minimum Node version to 22.21\n- Document using NODE_USE_ENV_PROXY env\n\n* missing json tag\n\nCo-authored-by: Jarek Potiuk \u003cjarek@potiuk.com\u003e\n\n* Update .github/workflows/mcp-tests.yml\n\nCo-authored-by: Jarek Potiuk \u003cjarek@potiuk.com\u003e\n\n* package-lock.json\n\n* better proxy check\n\n* Exclude Node 23 from the engines range and fix its upgrade hint\n\nNode 23 never got the env proxy support, but \"\u003e\u003d22.21\" accepted it and\nthe runtime warning told 23.x users to upgrade to \"22.21 or later\",\nwhich they already were. Use \"^22.21 || \u003e\u003d24\" and say so in the\nmessage, READMEs and AGENTS.md. Note that the dispatcher check reads\nan undici-internal global and can give a false warning.\n\nGenerated-by: Claude Opus 5\n\n---------\n\nCo-authored-by: Jarek Potiuk \u003cjarek@potiuk.com\u003e"
    },
    {
      "commit": "11d5a39fad2f26bf675b88c4ca16efbc13682902",
      "tree": "f77ed5416b23a519e85a4ff5dd2efba7057818de",
      "parents": [
        "47a8d4d7e99881c42b68dee1de835b6aef132f4d"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Oct 20 11:12:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 11:12:38 2026 +0200"
      },
      "message": "apache-projects-mcp: bump body-parser to 2.3.0 (GHSA-v422-hmwv-36x6) (#64)\n\nGenerated-by: Claude Code 2.1.304 (Claude Opus 5.5)"
    },
    {
      "commit": "47a8d4d7e99881c42b68dee1de835b6aef132f4d",
      "tree": "91bf0a98da57043249ab64126cd1ec3469bb8970",
      "parents": [
        "353d5384097513a6b88f45e67c4092aafaec2c50",
        "7b7cf4666ddf70bc156b2d057b7db4d8545df345"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Oct 20 03:18:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 03:18:04 2026 +0200"
      },
      "message": "Merge pull request #62 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/modelcontextprotocol/sdk-1.31.0\n\nBump @modelcontextprotocol/sdk from 1.30.0 to 1.31.0 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "353d5384097513a6b88f45e67c4092aafaec2c50",
      "tree": "b8dc5f3af9517d7a33dfa40540f2839dbcb7d8ef",
      "parents": [
        "a5ef930f015d40071bd410ca629c37cb67e728f9",
        "3f1dad266750bf1a45756d386816ec2b2481b09c"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Oct 20 03:17:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 03:17:56 2026 +0200"
      },
      "message": "Merge pull request #63 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/proxy-addr-2.0.8\n\nBump proxy-addr from 2.0.7 to 2.0.8 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "3f1dad266750bf1a45756d386816ec2b2481b09c",
      "tree": "b8dc5f3af9517d7a33dfa40540f2839dbcb7d8ef",
      "parents": [
        "a5ef930f015d40071bd410ca629c37cb67e728f9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 19 23:31:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 23:31:37 2026 +0000"
      },
      "message": "Bump proxy-addr from 2.0.7 to 2.0.8 in /mcp/apache-projects-mcp\n\nBumps [proxy-addr](https://github.com/jshttp/proxy-addr) from 2.0.7 to 2.0.8.\n- [Release notes](https://github.com/jshttp/proxy-addr/releases)\n- [Changelog](https://github.com/jshttp/proxy-addr/blob/master/HISTORY.md)\n- [Commits](https://github.com/jshttp/proxy-addr/compare/v2.0.7...v2.0.8)\n\n---\nupdated-dependencies:\n- dependency-name: proxy-addr\n  dependency-version: 2.0.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "7b7cf4666ddf70bc156b2d057b7db4d8545df345",
      "tree": "356ca582d407a215f671d70256c0dfc1283bedd2",
      "parents": [
        "a5ef930f015d40071bd410ca629c37cb67e728f9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 19 23:31:31 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 23:31:31 2026 +0000"
      },
      "message": "Bump @modelcontextprotocol/sdk in /mcp/apache-projects-mcp\n\nBumps [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) from 1.30.0 to 1.31.0.\n- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)\n- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.0...1.31.0)\n\n---\nupdated-dependencies:\n- dependency-name: \"@modelcontextprotocol/sdk\"\n  dependency-version: 1.31.0\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "a5ef930f015d40071bd410ca629c37cb67e728f9",
      "tree": "25ac35a56f5458382e0b8ca2c77a92e26def0195",
      "parents": [
        "5ee15374a0d4e1a8af0d0e45f9464a2be856b108",
        "f4828b417db895325d3a9869388e3895a14f22f8"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Oct 20 01:27:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 01:27:33 2026 +0200"
      },
      "message": "Merge pull request #56 from potiuk/prek-package-lock-check\n\nAdd prek check that package-lock.json matches package.json"
    },
    {
      "commit": "5ee15374a0d4e1a8af0d0e45f9464a2be856b108",
      "tree": "443e3fd2d19e03c496783b09152d62f1f7e7001f",
      "parents": [
        "bf26a2fbe3114b3e34208e9cb71e606c98cb221d"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Mon Oct 19 14:31:55 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Mon Oct 19 14:32:02 2026 -0400"
      },
      "message": "Add --month backfill support to asf-highlights\n\nasf_activity.py and generate_asf_blog_posts.sh default to reporting on\nlast month. Add an optional --month YYYY-MM flag to both so a missed\nmonth can be regenerated after the fact.\n\nasf_activity.py:\n- Add TARGET_MONTH / set_target_month() and honor it in get_date_range()\n- Parse --month YYYY-MM (validates format, errors on bad input)\n- Name the --markdown output activity_YYYY_MM_01.md for the target month\n\ngenerate_asf_blog_posts.sh:\n- Replace the single --dry-run check with an argument loop that also\n  accepts --month YYYY-MM\n- In backfill mode, report on the target month and set the publication\n  date to the 1st of the following month\n- Skip project birthdays on a backfill (they are anniversary-based on the\n  current month, not the target month)\n- Guard the empty MONTH_ARG array expansion so it is safe under set -u\n\nREADME.md:\n- Document --month for both scripts, with backfill examples\n"
    },
    {
      "commit": "f4828b417db895325d3a9869388e3895a14f22f8",
      "tree": "2e471946132b07b52f006f365d07fe33b2bb2464",
      "parents": [
        "bf26a2fbe3114b3e34208e9cb71e606c98cb221d"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Mon Oct 19 17:35:17 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Mon Oct 19 17:38:06 2026 +0200"
      },
      "message": "Add prek check that package-lock.json matches package.json\n\nnpm mirrors name, version, dependencies, engines, etc. from package.json\ninto the lock file\u0027s root entry. Editing package.json without regenerating\nthe lock leaves the two out of sync (as in #55, where `engines` was bumped\nbut the lock files still record the old value), and the next `npm install`\nproduces an unrelated diff.\n\nAdd scripts/check-package-lock.mjs (zero dependencies) and wire it as the\n`package-lock-sync` pre-commit hook. It runs only when a package.json or\npackage-lock.json changes; lock files are no longer globally excluded (they\npass all other hooks unchanged). In CI, PRs run it against the files changed\nsince the base commit instead of --all-files.\n\nGenerated-by: Claude Opus 5\n"
    },
    {
      "commit": "bf26a2fbe3114b3e34208e9cb71e606c98cb221d",
      "tree": "de4adc8d330bc3b192542e74320a88d3b85a2158",
      "parents": [
        "692d0169a2babc8389f3b961e3dbcee0fc7fdac3",
        "120b8f7e3ac29a6adfe5d8a0f96724a5b5791131"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:55:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:55:36 2026 +0100"
      },
      "message": "Merge pull request #54 from potiuk/ponymail-browser-login\n\nponymail-mcp: log in in the browser instead of copying the cookie"
    },
    {
      "commit": "120b8f7e3ac29a6adfe5d8a0f96724a5b5791131",
      "tree": "de4adc8d330bc3b192542e74320a88d3b85a2158",
      "parents": [
        "692d0169a2babc8389f3b961e3dbcee0fc7fdac3"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:51:58 2026 +0100"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:51:58 2026 +0100"
      },
      "message": "ponymail-mcp: log in in the browser instead of copying the cookie\n\n`login` now opens the PonyMail login page in a Chromium-family browser\nwindow (Chrome, Edge, Brave, Chromium) with its own profile. The user\nlogs in there as usual; the MCP server reads the HttpOnly `ponymail`\ncookie from that window over the DevTools protocol on a private pipe\n(--remote-debugging-pipe, no port), validates it, caches it and closes\nthe window. No DevTools, no copy \u0026 paste.\n\nA loopback OAuth redirect is not an option: ASF OAuth only redirects to\nregistered ASF hosts, and the session cookie is HttpOnly.\n\n- The profile is temporary and deleted after login by default.\n- PONYMAIL_BROWSER_PROFILE\u003dpersistent (or an absolute path) keeps it in\n  ~/.ponymail-mcp/browser-profile (0700), so the login and a password\n  saved in the browser survive between sessions. A kept profile uses\n  the OS credential store (Keychain / keyring), so it is encrypted at\n  rest.\n- PONYMAIL_BROWSER picks the browser; `none` keeps the paste form,\n  which also remains the fallback when no browser can be started.\n- No new dependencies; works on Node \u003e\u003d 20.\n\nGenerated-by: Claude Code (Claude Opus 5.5)\n"
    },
    {
      "commit": "692d0169a2babc8389f3b961e3dbcee0fc7fdac3",
      "tree": "fbc6dc0b37b3b7a5781c39e3dbd97be412b593aa",
      "parents": [
        "394168d4ce65afac13da5f4bb6c4bf4fdd4363db",
        "274d2b99a978d3d6c19683d278b88dfab9c70346"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:23:16 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:23:16 2026 +0100"
      },
      "message": "Merge pull request #53 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/modelcontextprotocol/sdk-1.31.0\n\nBump @modelcontextprotocol/sdk from 1.29.0 to 1.31.0 in /mcp/ponymail-mcp"
    },
    {
      "commit": "394168d4ce65afac13da5f4bb6c4bf4fdd4363db",
      "tree": "757ff8e4af95be238423a0d891b2dfbcef80e7cc",
      "parents": [
        "7c67eabf33262176107b05694d246563077ba9b4",
        "8d598dc5b6b556f2ffed8a66dba41957bc1c5559"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:23:06 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:23:06 2026 +0100"
      },
      "message": "Merge pull request #52 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/proxy-addr-2.0.8\n\nBump proxy-addr from 2.0.7 to 2.0.8 in /mcp/ponymail-mcp"
    },
    {
      "commit": "7c67eabf33262176107b05694d246563077ba9b4",
      "tree": "962026a55acf472febefa47f4e8b392b90fe5176",
      "parents": [
        "988f28f892f997b8f523b47605a36d2e04ce2390",
        "2aa8548b0e68ec4cb7483a8ad45c1cb34a54b35c"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:22:56 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:22:56 2026 +0100"
      },
      "message": "Merge pull request #50 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/hono-4.13.12\n\nBump hono from 4.13.1 to 4.13.13 in /mcp/ponymail-mcp"
    },
    {
      "commit": "988f28f892f997b8f523b47605a36d2e04ce2390",
      "tree": "cd5dc4db3db3e4412bf296f54a2dbdd9bd6748ec",
      "parents": [
        "54a3f86d16b8bcbbdd980461147fc5eb854a0f08",
        "85ee3fdcfe559d7938eba7ed9cc12c5d8444caa6"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:22:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:22:46 2026 +0100"
      },
      "message": "Merge pull request #49 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/ip-address-10.7.3\n\nBump ip-address from 10.4.0 to 10.7.3 in /mcp/ponymail-mcp"
    },
    {
      "commit": "54a3f86d16b8bcbbdd980461147fc5eb854a0f08",
      "tree": "6ede1007de57794de3780bca98108ffcdb94b2c2",
      "parents": [
        "9c54b6f12d6695af7123509fa17e96f52e2b296e",
        "e299bbdc23778cd790d5812e444b5c71426efc96"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:22:37 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:22:37 2026 +0100"
      },
      "message": "Merge pull request #48 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/fast-uri-3.1.8\n\nBump fast-uri from 3.1.7 to 3.1.8 in /mcp/ponymail-mcp"
    },
    {
      "commit": "9c54b6f12d6695af7123509fa17e96f52e2b296e",
      "tree": "7403f309d21392390e3347f738bee28e2efcbdbf",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317",
        "e135f5cc1c23a2ad75d65758080b89c658b8fb7d"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 13:22:28 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 13:22:28 2026 +0100"
      },
      "message": "Merge pull request #51 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/fast-uri-3.1.8\n\nBump fast-uri from 3.1.7 to 3.1.8 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "2aa8548b0e68ec4cb7483a8ad45c1cb34a54b35c",
      "tree": "fb95f42b2e43e515081842aaae8f15032374d5fb",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 12:20:45 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 12:20:45 2026 +0000"
      },
      "message": "Bump hono from 4.13.1 to 4.13.13 in /mcp/ponymail-mcp\n\nBumps [hono](https://github.com/honojs/hono) from 4.13.1 to 4.13.13.\n- [Release notes](https://github.com/honojs/hono/releases)\n- [Commits](https://github.com/honojs/hono/compare/v4.13.1...v4.13.13)\n\n---\nupdated-dependencies:\n- dependency-name: hono\n  dependency-version: 4.13.12\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e299bbdc23778cd790d5812e444b5c71426efc96",
      "tree": "d21fcddc5b6d05b85735fa5f27674dd76c90741b",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 12:20:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 12:20:37 2026 +0000"
      },
      "message": "Bump fast-uri from 3.1.7 to 3.1.8 in /mcp/ponymail-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.7 to 3.1.8.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.7...v3.1.8)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "85ee3fdcfe559d7938eba7ed9cc12c5d8444caa6",
      "tree": "ed39b48026d7498052e03835487ef5651e2274e6",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 12:20:35 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 12:20:35 2026 +0000"
      },
      "message": "Bump ip-address from 10.4.0 to 10.7.3 in /mcp/ponymail-mcp\n\nBumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.4.0 to 10.7.3.\n- [Release notes](https://github.com/beaugunderson/ip-address/releases)\n- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.4.0...v10.7.3)\n\n---\nupdated-dependencies:\n- dependency-name: ip-address\n  dependency-version: 10.7.3\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "274d2b99a978d3d6c19683d278b88dfab9c70346",
      "tree": "7b2dc08dcb620c37534cd2f1ff3bbcb8f5599e8f",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 11:15:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 11:15:18 2026 +0000"
      },
      "message": "Bump @modelcontextprotocol/sdk in /mcp/ponymail-mcp\n\nBumps [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) from 1.29.0 to 1.31.0.\n- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)\n- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.29.0...1.31.0)\n\n---\nupdated-dependencies:\n- dependency-name: \"@modelcontextprotocol/sdk\"\n  dependency-version: 1.31.0\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8d598dc5b6b556f2ffed8a66dba41957bc1c5559",
      "tree": "2aa1e4f1847327e354f4d7d6ad65a20077ea166b",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 11:15:15 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 11:15:15 2026 +0000"
      },
      "message": "Bump proxy-addr from 2.0.7 to 2.0.8 in /mcp/ponymail-mcp\n\nBumps [proxy-addr](https://github.com/jshttp/proxy-addr) from 2.0.7 to 2.0.8.\n- [Release notes](https://github.com/jshttp/proxy-addr/releases)\n- [Changelog](https://github.com/jshttp/proxy-addr/blob/master/HISTORY.md)\n- [Commits](https://github.com/jshttp/proxy-addr/compare/v2.0.7...v2.0.8)\n\n---\nupdated-dependencies:\n- dependency-name: proxy-addr\n  dependency-version: 2.0.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e135f5cc1c23a2ad75d65758080b89c658b8fb7d",
      "tree": "7403f309d21392390e3347f738bee28e2efcbdbf",
      "parents": [
        "4b98e61adcc8d69cbae55cf35916162507082317"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 11:15:14 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 11:15:14 2026 +0000"
      },
      "message": "Bump fast-uri from 3.1.7 to 3.1.8 in /mcp/apache-projects-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.7 to 3.1.8.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.7...v3.1.8)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "4b98e61adcc8d69cbae55cf35916162507082317",
      "tree": "418a9be5bf1881c9e4adef0466edbc691a1298ba",
      "parents": [
        "556822ac3266d091cdecf8b39b798c8a90ae04e6",
        "7b7d40204329fdf986c258946193d1969e4d892b"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Oct 10 12:14:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 12:14:07 2026 +0100"
      },
      "message": "Merge pull request #46 from potiuk/ponymail-mcp/session-token-login\n\nponymail-mcp: add browser-approved session-token login"
    },
    {
      "commit": "556822ac3266d091cdecf8b39b798c8a90ae04e6",
      "tree": "3a1af2dc041b16fab87a14e5a79918634eeccfb7",
      "parents": [
        "b84cb62c8f73415643633a792eea46f02deb74eb",
        "805e9d0b2e96fc0b591ff1da63eb7319cca39285"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Oct 02 15:59:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 02 15:59:00 2026 -0400"
      },
      "message": "Merge pull request #47 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/ip-address-10.7.2\n\nBump ip-address from 10.4.0 to 10.7.2 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "805e9d0b2e96fc0b591ff1da63eb7319cca39285",
      "tree": "3a1af2dc041b16fab87a14e5a79918634eeccfb7",
      "parents": [
        "b84cb62c8f73415643633a792eea46f02deb74eb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 29 06:44:23 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 06:44:23 2026 +0000"
      },
      "message": "Bump ip-address from 10.4.0 to 10.7.2 in /mcp/apache-projects-mcp\n\nBumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.4.0 to 10.7.2.\n- [Release notes](https://github.com/beaugunderson/ip-address/releases)\n- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.4.0...v10.7.2)\n\n---\nupdated-dependencies:\n- dependency-name: ip-address\n  dependency-version: 10.7.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "7b7d40204329fdf986c258946193d1969e4d892b",
      "tree": "5d68861c1d2f5290c92048f111bf54b4e68a08b9",
      "parents": [
        "968ea1211a25f2ea5b540f5f82bece67904d1c97"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Sep 26 12:33:18 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Sep 26 12:33:18 2026 +0200"
      },
      "message": "governance: drop extra trailing blank line flagged by end-of-file-fixer\n\nThe prek end-of-file-fixer hook fails on main because of it.\n\nGenerated-by: Claude Code 2.1.283 (Claude Opus 5.5)\n"
    },
    {
      "commit": "968ea1211a25f2ea5b540f5f82bece67904d1c97",
      "tree": "6ddda2f3e22db6d05286438bb10c3fba56096a67",
      "parents": [
        "b84cb62c8f73415643633a792eea46f02deb74eb"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Sep 26 12:25:08 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Sep 26 12:25:08 2026 +0200"
      },
      "message": "ponymail-mcp: add browser-approved session-token login\n\nAdds a \"token\" login method: the MCP listens on a random 127.0.0.1 port,\nopens PonyMail\u0027s token.html approval page, and receives a short-term,\nread-only session token once the user approves in the browser. The\ntoken is sent as \"Authorization: Bearer\" and revoked on logout.\n\nThis needs a PonyMail Foal release with session tokens, deployed and\nenabled for lists.apache.org. Until then the method detects the missing\nendpoint and says so; cookie login stays the default.\n\nAlso adds PONYMAIL_TOKEN / PONYMAIL_AUTH_METHOD, writes the session file\nowner-only, and fixes URL quoting for \"start\" on Windows.\n\nGenerated-by: Claude Code 2.1.283 (Claude Opus 5.5)\n"
    },
    {
      "commit": "b84cb62c8f73415643633a792eea46f02deb74eb",
      "tree": "f5cfb5ac168498f6dd07531335abe18e8fba9236",
      "parents": [
        "c039a59a939106ff20716174533fb5d82603b576",
        "3a6d7730572027c0e3da5a392c95b20b9e5b457a"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Mon Sep 21 14:51:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 14:51:53 2026 +0200"
      },
      "message": "Merge pull request #44 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/hono-4.13.7\n\nBump hono from 4.13.0 to 4.13.7 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "c039a59a939106ff20716174533fb5d82603b576",
      "tree": "8aa0fadc6932271e22cc4ba55f0170c3b47ef40d",
      "parents": [
        "6987cba01f5cf51d351800bd8af717e12d00f87c"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Sep 18 12:33:35 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Sep 18 12:34:06 2026 -0400"
      },
      "message": "Adds intial TLP governance settings for Magpie\n"
    },
    {
      "commit": "6987cba01f5cf51d351800bd8af717e12d00f87c",
      "tree": "c92a5700fd1fee88b6dbebc167723229f0ccc227",
      "parents": [
        "2abf042458ed04eada94b87a04f22701b4dbb2d9"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Fri Sep 18 14:25:43 2026 +0100"
      },
      "committer": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Fri Sep 18 14:25:43 2026 +0100"
      },
      "message": "Bump zizmor\n"
    },
    {
      "commit": "2abf042458ed04eada94b87a04f22701b4dbb2d9",
      "tree": "a2de180c83e986f08c60e331b294b76177f60d3e",
      "parents": [
        "46452e0346dc1902026c8cd7892e5b4f2d274d4d"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Fri Sep 18 14:21:50 2026 +0100"
      },
      "committer": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Fri Sep 18 14:21:50 2026 +0100"
      },
      "message": "Bump astral-sh/setup-uv\n"
    },
    {
      "commit": "46452e0346dc1902026c8cd7892e5b4f2d274d4d",
      "tree": "8405c35a57bb08c4ef158f20e5a70dc57279d3fc",
      "parents": [
        "ff6308986c7e7bca4c17bf6d8fa7ee7b3d2e8a68"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Fri Sep 18 14:15:47 2026 +0100"
      },
      "committer": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Fri Sep 18 14:15:47 2026 +0100"
      },
      "message": "Standardise notifications\n"
    },
    {
      "commit": "3a6d7730572027c0e3da5a392c95b20b9e5b457a",
      "tree": "0d2df143e07bc82779dff3f12a5ed25232eda1d5",
      "parents": [
        "ff6308986c7e7bca4c17bf6d8fa7ee7b3d2e8a68"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Sep 10 01:46:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 01:46:02 2026 +0000"
      },
      "message": "Bump hono from 4.13.0 to 4.13.7 in /mcp/apache-projects-mcp\n\nBumps [hono](https://github.com/honojs/hono) from 4.13.0 to 4.13.7.\n- [Release notes](https://github.com/honojs/hono/releases)\n- [Commits](https://github.com/honojs/hono/compare/v4.13.0...v4.13.7)\n\n---\nupdated-dependencies:\n- dependency-name: hono\n  dependency-version: 4.13.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ff6308986c7e7bca4c17bf6d8fa7ee7b3d2e8a68",
      "tree": "b613beff6605a8ec07aeb7650fbbd4ab4614efb8",
      "parents": [
        "31d13f7e348466c4ffe0a47dd717021deb6b8292",
        "71618f7b429199d87b95f59457d56784c5c28cf9"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Sep 08 11:20:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 11:20:45 2026 -0400"
      },
      "message": "Merge pull request #43 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/hono/node-server-1.19.17\n\nBump @hono/node-server from 1.19.14 to 1.19.17 in /mcp/ponymail-mcp"
    },
    {
      "commit": "31d13f7e348466c4ffe0a47dd717021deb6b8292",
      "tree": "da42fe64df924a5fde5b4124f210570980ca9c87",
      "parents": [
        "20f22bf42ee0475fa808e6d9cd53c338704d3a00",
        "9e7b50f0a0c8740a7ca661d176731846f33fa610"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Sep 08 11:20:27 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 11:20:27 2026 -0400"
      },
      "message": "Merge pull request #42 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/qs-6.16.0\n\nBump qs from 6.15.2 to 6.16.0 in /mcp/ponymail-mcp"
    },
    {
      "commit": "71618f7b429199d87b95f59457d56784c5c28cf9",
      "tree": "3634e2ae6ff709576c83713f4eb290ab2ff4e270",
      "parents": [
        "20f22bf42ee0475fa808e6d9cd53c338704d3a00"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 08 09:09:22 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 09:09:22 2026 +0000"
      },
      "message": "Bump @hono/node-server from 1.19.14 to 1.19.17 in /mcp/ponymail-mcp\n\nBumps [@hono/node-server](https://github.com/honojs/node-server) from 1.19.14 to 1.19.17.\n- [Release notes](https://github.com/honojs/node-server/releases)\n- [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v1.19.17)\n\n---\nupdated-dependencies:\n- dependency-name: \"@hono/node-server\"\n  dependency-version: 1.19.17\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "9e7b50f0a0c8740a7ca661d176731846f33fa610",
      "tree": "da42fe64df924a5fde5b4124f210570980ca9c87",
      "parents": [
        "20f22bf42ee0475fa808e6d9cd53c338704d3a00"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 08 09:08:59 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 09:08:59 2026 +0000"
      },
      "message": "Bump qs from 6.15.2 to 6.16.0 in /mcp/ponymail-mcp\n\nBumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.16.0.\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n  dependency-version: 6.16.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "20f22bf42ee0475fa808e6d9cd53c338704d3a00",
      "tree": "6bbb8175cbb62c2c8cafd53e204c6f8ce924e33f",
      "parents": [
        "b96616750494656eaecb216e7532a38539b645b4",
        "767e9ed83b889683c8b668d6fb054ac3babd13e3"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Sep 08 10:43:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 10:43:45 2026 +0200"
      },
      "message": "Merge pull request #37 from ppkarwasz/feat/ponymail-mcp-threads-mode\n\nponymail-mcp: add threads mode to search_list, extract Mail class"
    },
    {
      "commit": "b96616750494656eaecb216e7532a38539b645b4",
      "tree": "bf1b6d126d60f3f3e789118884fb329aee03d5ca",
      "parents": [
        "db811513dc0ee14942a18befd8e96de478ed606a",
        "36138743eb05d274466b08614f35a97dfc3e9aa5"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Sep 08 10:43:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 10:43:11 2026 +0200"
      },
      "message": "Merge pull request #38 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/hono/node-server-2.1.0\n\nBump @hono/node-server from 1.19.14 to 2.1.0 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "db811513dc0ee14942a18befd8e96de478ed606a",
      "tree": "9ae67f9d92fc4cfbc0df023cee4760c07ac4439b",
      "parents": [
        "386f00a9d277f9346cf7dc83d44069d7b34ef6d4",
        "035965a018533d829518874c5d6255c7d87e5274"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Sep 08 10:42:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 10:42:59 2026 +0200"
      },
      "message": "Merge pull request #39 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/fast-uri-3.1.7\n\nBump fast-uri from 3.1.4 to 3.1.7 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "386f00a9d277f9346cf7dc83d44069d7b34ef6d4",
      "tree": "b712d3cbb3a166ffffcdb3f7bfc3b8f320f2494c",
      "parents": [
        "5f6736ca6cbdde1cde23ced36ccbdf5b4a6a1bb6",
        "4b5bcf59d336a1f28da82fcf23f367be23eaa528"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Sep 08 10:42:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 10:42:43 2026 +0200"
      },
      "message": "Merge pull request #40 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/fast-uri-3.1.7\n\nBump fast-uri from 3.1.5 to 3.1.7 in /mcp/ponymail-mcp"
    },
    {
      "commit": "5f6736ca6cbdde1cde23ced36ccbdf5b4a6a1bb6",
      "tree": "4e5bb2082f9737da01615bcbefeb0de5182d5970",
      "parents": [
        "afacbfe5fa8f464393ce34958d7693ddcbb6bfce",
        "ee6eefe788824070308959d1a9b7a00bf388abe7"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Sep 08 10:42:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 10:42:29 2026 +0200"
      },
      "message": "Merge pull request #41 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/qs-6.16.0\n\nBump qs from 6.15.2 to 6.16.0 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "ee6eefe788824070308959d1a9b7a00bf388abe7",
      "tree": "4e5bb2082f9737da01615bcbefeb0de5182d5970",
      "parents": [
        "afacbfe5fa8f464393ce34958d7693ddcbb6bfce"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Sep 03 06:55:21 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 06:55:21 2026 +0000"
      },
      "message": "Bump qs from 6.15.2 to 6.16.0 in /mcp/apache-projects-mcp\n\nBumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.16.0.\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n  dependency-version: 6.16.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "4b5bcf59d336a1f28da82fcf23f367be23eaa528",
      "tree": "e3b02f5563f38206c9e4b6fc1f4e570ed75cbf40",
      "parents": [
        "afacbfe5fa8f464393ce34958d7693ddcbb6bfce"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Sep 03 02:53:07 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 02:53:07 2026 +0000"
      },
      "message": "Bump fast-uri from 3.1.5 to 3.1.7 in /mcp/ponymail-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.5 to 3.1.7.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.5...v3.1.7)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "035965a018533d829518874c5d6255c7d87e5274",
      "tree": "f8e4d05702e33be82fdb7c3cf14aa35ec241c5fe",
      "parents": [
        "afacbfe5fa8f464393ce34958d7693ddcbb6bfce"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Sep 02 21:30:17 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 21:30:17 2026 +0000"
      },
      "message": "Bump fast-uri from 3.1.4 to 3.1.7 in /mcp/apache-projects-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.7.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.7)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "afacbfe5fa8f464393ce34958d7693ddcbb6bfce",
      "tree": "bb1ffdb3fe95bb1cf1aa2b4b04f1e7cca9acc352",
      "parents": [
        "b9ee5c5d1d5a4ee4cbdf99217095671e9dede2ff"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Aug 21 09:47:41 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Aug 21 09:48:33 2026 -0400"
      },
      "message": "Fix variable\n\nYes, I am aware that this is not useful to anyone but me. But as far as\nI know, I\u0027m the only one who ever uses this script, so, this makes it\nuseful to me. :)\n"
    },
    {
      "commit": "36138743eb05d274466b08614f35a97dfc3e9aa5",
      "tree": "a57dbcbda147026cffc9f65c753e9736baf8819b",
      "parents": [
        "b9ee5c5d1d5a4ee4cbdf99217095671e9dede2ff"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Aug 12 20:27:10 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 20:27:10 2026 +0000"
      },
      "message": "Bump @hono/node-server from 1.19.14 to 2.1.0 in /mcp/apache-projects-mcp\n\nBumps [@hono/node-server](https://github.com/honojs/node-server) from 1.19.14 to 2.1.0.\n- [Release notes](https://github.com/honojs/node-server/releases)\n- [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v2.1.0)\n\n---\nupdated-dependencies:\n- dependency-name: \"@hono/node-server\"\n  dependency-version: 2.1.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "767e9ed83b889683c8b668d6fb054ac3babd13e3",
      "tree": "c372066b457d2926714fdbd968ffea0595ccfa67",
      "parents": [
        "eaeb1cfbf25e8ad6a897348a787d8ad4399db121"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Sun Aug 09 19:22:10 2026 +0200"
      },
      "committer": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Sun Aug 09 19:55:04 2026 +0200"
      },
      "message": "ponymail-mcp: add threads mode to search_list, extract Mail class\n\nAdd a mode parameter (\u0027emails\u0027 | \u0027threads\u0027) to search_list.\nIn threads mode the tool renders one entry per thread\n(top-level thread_struct nodes joined against the email summaries by mid),\nshowing the root message\u0027s subject, sender, date, ID, and total reply count.\nThread starters whose subject begins with \"Re:\" or whose root carries In-Reply-To\nare annotated as possible continuations of an earlier thread:\nthreading only spans the queried timespan,\nso replies to older messages appear as thread starters.\nThe annotation is a hint, never a filter, as neither signal is reliable.\nThis lets consumers such as Apache Magpie retrieve only thread heads\nwhen triaging security reports.\n\nExtract a Mail class into mail.js owning the email record schema and\nits Markdown formatting, with unit tests in mail.test.js.\nThe class exposes mid alone:\nthe API\u0027s id field is a response-time alias of mid and is ignored.\n\nDeprecate the emails_only parameter (accepted but ignored):\nit never changed the rendered output apart from a misleading \"Threads: 0\" header.\nThe backend optimization it toggled (emailsOnly\u003d1,\nskipping thread structure and word cloud computation)\nis now applied automatically whenever threads mode is not requested,\nand the thread count is only shown in threads mode.\n\nAlso clarify the id parameter descriptions\n(the value is a mid/permalink or a Message-ID)\nand share the pagination footer between the email and thread listings.\n\nBump the version to 1.1.0 (semver:\nnew mode parameter, emails_only deprecated as a no-op)\nand read the MCP server version from package.json\ninstead of a second hardcoded copy.\n\nAssisted-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "b9ee5c5d1d5a4ee4cbdf99217095671e9dede2ff",
      "tree": "bf14f4f08db03f167c4de0d424fe0ea871a02748",
      "parents": [
        "eaeb1cfbf25e8ad6a897348a787d8ad4399db121",
        "331d7f99bb0adea82ff34a737ddd8f05fdb8dd60"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Sun Aug 09 09:15:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 09:15:50 2026 -0700"
      },
      "message": "Merge pull request #36 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/hono-4.13.1\n\nBump hono from 4.12.26 to 4.13.1 in /mcp/ponymail-mcp"
    },
    {
      "commit": "331d7f99bb0adea82ff34a737ddd8f05fdb8dd60",
      "tree": "bf14f4f08db03f167c4de0d424fe0ea871a02748",
      "parents": [
        "eaeb1cfbf25e8ad6a897348a787d8ad4399db121"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Aug 09 09:38:50 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 09:38:50 2026 +0000"
      },
      "message": "Bump hono from 4.12.26 to 4.13.1 in /mcp/ponymail-mcp\n\nBumps [hono](https://github.com/honojs/hono) from 4.12.26 to 4.13.1.\n- [Release notes](https://github.com/honojs/hono/releases)\n- [Commits](https://github.com/honojs/hono/compare/v4.12.26...v4.13.1)\n\n---\nupdated-dependencies:\n- dependency-name: hono\n  dependency-version: 4.13.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "eaeb1cfbf25e8ad6a897348a787d8ad4399db121",
      "tree": "0a25fad1b581a0b769f138fafc93b9a9bebeed54",
      "parents": [
        "194b8421f7ace670bba0132f24448517237a964d",
        "089f1d6d8c2ec45dcd99495c665b4f3896f0f137"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:31:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:31:49 2026 -0400"
      },
      "message": "Merge pull request #35 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/multi-48d61a6c1d\n\nBump @hono/node-server and @modelcontextprotocol/sdk in /mcp/apache-projects-mcp"
    },
    {
      "commit": "089f1d6d8c2ec45dcd99495c665b4f3896f0f137",
      "tree": "0a25fad1b581a0b769f138fafc93b9a9bebeed54",
      "parents": [
        "194b8421f7ace670bba0132f24448517237a964d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 04 21:25:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 21:25:44 2026 +0000"
      },
      "message": "Bump @hono/node-server and @modelcontextprotocol/sdk\n\nBumps [@hono/node-server](https://github.com/honojs/node-server) to 2.1.0 and updates ancestor dependency [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk). These dependencies need to be updated together.\n\n\nUpdates `@hono/node-server` from 1.19.14 to 2.1.0\n- [Release notes](https://github.com/honojs/node-server/releases)\n- [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v2.1.0)\n\nUpdates `@modelcontextprotocol/sdk` from 1.29.0 to 1.30.0\n- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)\n- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.29.0...1.30.0)\n\n---\nupdated-dependencies:\n- dependency-name: \"@hono/node-server\"\n  dependency-version: 2.1.0\n  dependency-type: indirect\n- dependency-name: \"@modelcontextprotocol/sdk\"\n  dependency-version: 1.30.0\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "194b8421f7ace670bba0132f24448517237a964d",
      "tree": "db6c468a2072b507624de1d2ad79f0178a1ef3b7",
      "parents": [
        "885aefb83d5882b010a47c83fb3da111ca08d160",
        "10924550eb0d4cc7adcddadc8f5ed04b49df2294"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:24:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:24:29 2026 -0400"
      },
      "message": "Merge pull request #31 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/hono-4.13.0\n\nBump hono from 4.12.23 to 4.13.0 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "885aefb83d5882b010a47c83fb3da111ca08d160",
      "tree": "eef7d6e243b4de47f2fa7589250fcf00f8588af4",
      "parents": [
        "2db216f94be85df1e61ff3a65e7050a2341ae79a",
        "7cd0bbf2723a0b5586f087f3d93c03721afe1617"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:24:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:24:09 2026 -0400"
      },
      "message": "Merge pull request #34 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/fast-uri-3.1.5\n\nBump fast-uri from 3.1.2 to 3.1.5 in /mcp/ponymail-mcp"
    },
    {
      "commit": "2db216f94be85df1e61ff3a65e7050a2341ae79a",
      "tree": "c264f524752ddbc8adae04100fc59f03ce3c1623",
      "parents": [
        "ae71d69badf86d494725374af6bf80acb300e36c",
        "ffe91d6fbbb7765e18ea1bc80f3f9450547dc6f5"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:23:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:23:51 2026 -0400"
      },
      "message": "Merge pull request #33 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/ip-address-10.4.0\n\nBump ip-address from 10.2.0 to 10.4.0 in /mcp/ponymail-mcp"
    },
    {
      "commit": "ae71d69badf86d494725374af6bf80acb300e36c",
      "tree": "8681435ed087bf476a61387530f0e8b293881bcd",
      "parents": [
        "beadec6cae4a8fc864c0b53397a92a1daa66fa54",
        "660460ddf517951b048cfb666024f24c3ed5e5fe"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:22:55 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:22:55 2026 -0400"
      },
      "message": "Merge pull request #28 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/fast-uri-3.1.4\n\nBump fast-uri from 3.1.2 to 3.1.4 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "7cd0bbf2723a0b5586f087f3d93c03721afe1617",
      "tree": "08c673fd47ba3a575377592da21a7eaac5deb0d9",
      "parents": [
        "4a3a6c7dcbed777465de251855b824bf4d70a635"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 04 21:22:25 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 21:22:25 2026 +0000"
      },
      "message": "Bump fast-uri from 3.1.2 to 3.1.5 in /mcp/ponymail-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.5.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.5)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "beadec6cae4a8fc864c0b53397a92a1daa66fa54",
      "tree": "365f629a22dceb9439dd0df93bed1d4029827c74",
      "parents": [
        "4a3a6c7dcbed777465de251855b824bf4d70a635",
        "30eecbf45276c5aa9d86f29e6ee6dd6d28ac0680"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:22:24 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:22:24 2026 -0400"
      },
      "message": "Merge pull request #25 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/body-parser-2.3.0\n\nBump body-parser from 2.2.2 to 2.3.0 in /mcp/ponymail-mcp"
    },
    {
      "commit": "ffe91d6fbbb7765e18ea1bc80f3f9450547dc6f5",
      "tree": "c8895c51f7b9d90bfea64f27d4608efa136ea0f8",
      "parents": [
        "4a3a6c7dcbed777465de251855b824bf4d70a635"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 04 21:22:23 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 21:22:23 2026 +0000"
      },
      "message": "Bump ip-address from 10.2.0 to 10.4.0 in /mcp/ponymail-mcp\n\nBumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.4.0.\n- [Release notes](https://github.com/beaugunderson/ip-address/releases)\n- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: ip-address\n  dependency-version: 10.4.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "4a3a6c7dcbed777465de251855b824bf4d70a635",
      "tree": "fccadc7c731115e8aa5fbb8942c725cce7e03a82",
      "parents": [
        "2cd9dfd598828396ef4b02c29b7f18da8ef3b967",
        "f2b4a9daaa256e9e3617f5c4dab63eee5b00b5c3"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:21:53 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:21:53 2026 -0400"
      },
      "message": "Merge pull request #24 from potiuk/fix-ponymail-auth-result-page\n\nFix ponymail MCP auth result page: dark-mode text and Close tab button"
    },
    {
      "commit": "2cd9dfd598828396ef4b02c29b7f18da8ef3b967",
      "tree": "c3343abb121e994dfee9300a36a7f5b3d9c94255",
      "parents": [
        "9e21fea1a90edf74330414661ef4d3b5555dd5fe",
        "5b5a10ae8c3cf58db51087613993ef4397383c82"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Aug 04 17:21:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:21:12 2026 -0400"
      },
      "message": "Merge pull request #30 from apache/dependabot/npm_and_yarn/mcp/apache-projects-mcp/ip-address-10.4.0\n\nBump ip-address from 10.2.0 to 10.4.0 in /mcp/apache-projects-mcp"
    },
    {
      "commit": "10924550eb0d4cc7adcddadc8f5ed04b49df2294",
      "tree": "7c7904ea142737c56d3ea536cbcd5b25b6dbc0df",
      "parents": [
        "9e21fea1a90edf74330414661ef4d3b5555dd5fe"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 04 13:15:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 13:15:37 2026 +0000"
      },
      "message": "Bump hono from 4.12.23 to 4.13.0 in /mcp/apache-projects-mcp\n\nBumps [hono](https://github.com/honojs/hono) from 4.12.23 to 4.13.0.\n- [Release notes](https://github.com/honojs/hono/releases)\n- [Commits](https://github.com/honojs/hono/compare/v4.12.23...v4.13.0)\n\n---\nupdated-dependencies:\n- dependency-name: hono\n  dependency-version: 4.13.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "5b5a10ae8c3cf58db51087613993ef4397383c82",
      "tree": "c3343abb121e994dfee9300a36a7f5b3d9c94255",
      "parents": [
        "9e21fea1a90edf74330414661ef4d3b5555dd5fe"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 04 02:11:36 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 02:11:36 2026 +0000"
      },
      "message": "Bump ip-address from 10.2.0 to 10.4.0 in /mcp/apache-projects-mcp\n\nBumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.4.0.\n- [Release notes](https://github.com/beaugunderson/ip-address/releases)\n- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: ip-address\n  dependency-version: 10.4.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "660460ddf517951b048cfb666024f24c3ed5e5fe",
      "tree": "877ea9580d22049b1894def2374bc3dbed87cd44",
      "parents": [
        "9e21fea1a90edf74330414661ef4d3b5555dd5fe"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Jul 25 11:51:05 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 11:51:05 2026 +0000"
      },
      "message": "Bump fast-uri from 3.1.2 to 3.1.4 in /mcp/apache-projects-mcp\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.4.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.4)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "30eecbf45276c5aa9d86f29e6ee6dd6d28ac0680",
      "tree": "55fe04a1d8fb18efc33414d94ebcfb93490a6229",
      "parents": [
        "9e21fea1a90edf74330414661ef4d3b5555dd5fe"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 03:02:51 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 03:02:51 2026 +0000"
      },
      "message": "Bump body-parser from 2.2.2 to 2.3.0 in /mcp/ponymail-mcp\n\nBumps [body-parser](https://github.com/expressjs/body-parser) from 2.2.2 to 2.3.0.\n- [Release notes](https://github.com/expressjs/body-parser/releases)\n- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)\n- [Commits](https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: body-parser\n  dependency-version: 2.3.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f2b4a9daaa256e9e3617f5c4dab63eee5b00b5c3",
      "tree": "e15c31e1df01ae1284e602d7b1a54172d6107c66",
      "parents": [
        "9e21fea1a90edf74330414661ef4d3b5555dd5fe"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Wed Jul 08 17:16:10 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Wed Jul 08 17:16:10 2026 +0200"
      },
      "message": "Fix ponymail MCP auth result page: dark-mode text and Close tab button\n\nTwo issues on the authentication success page (resultPage in auth.js):\n\n- Dark mode text merged into the background: the dark-mode media query\n  only recolored `body`, so the `.card` kept its light green/red\n  background while paragraph text inherited the light body color,\n  rendering as light-on-light. The card now switches background and\n  text color together via CSS custom properties (--card-bg, --text,\n  --accent), using the same dark palette as the main page.\n\n- \"Close tab\" button did nothing: window.close() is blocked by browsers\n  for tabs the user navigated to (only script-opened tabs can\n  self-close). This can\u0027t be forced, so it now fails gracefully — if\n  the tab is still open shortly after the attempt, the button is hidden\n  and a \"press Ctrl/Cmd + W\" hint is shown instead.\n\nGenerated-by: Claude Code 2.1.158 (Claude Opus 4.8)\n"
    },
    {
      "commit": "9e21fea1a90edf74330414661ef4d3b5555dd5fe",
      "tree": "f04cdac758ba5066278c8cf08fc3d5278778bbbd",
      "parents": [
        "86e2af3fe44ac1c3d0007f2b761b0fb9c7e91a3d",
        "bf039455851891577f6bd274917dabfed55e757d"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun Jul 05 22:49:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 22:49:37 2026 +0200"
      },
      "message": "Merge pull request #21 from apache/rbowen-api-update\n\nFix get_thread, add get_source, make API suffix configurable"
    },
    {
      "commit": "86e2af3fe44ac1c3d0007f2b761b0fb9c7e91a3d",
      "tree": "dc167b517fc1cb0d878d8ecf01ae388b52623395",
      "parents": [
        "db6e26c7c765016b1e314443484d7996e7cea186",
        "ecdfe83c9404209ec8fdc3b659d60350cdbb201e"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun Jul 05 22:49:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 22:49:14 2026 +0200"
      },
      "message": "Merge pull request #22 from apache/dependabot/npm_and_yarn/mcp/ponymail-mcp/hono-4.12.26\n\nBump hono from 4.12.23 to 4.12.26 in /mcp/ponymail-mcp"
    },
    {
      "commit": "ecdfe83c9404209ec8fdc3b659d60350cdbb201e",
      "tree": "dc167b517fc1cb0d878d8ecf01ae388b52623395",
      "parents": [
        "db6e26c7c765016b1e314443484d7996e7cea186"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Jun 20 01:33:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 01:33:06 2026 +0000"
      },
      "message": "Bump hono from 4.12.23 to 4.12.26 in /mcp/ponymail-mcp\n\nBumps [hono](https://github.com/honojs/hono) from 4.12.23 to 4.12.26.\n- [Release notes](https://github.com/honojs/hono/releases)\n- [Commits](https://github.com/honojs/hono/compare/v4.12.23...v4.12.26)\n\n---\nupdated-dependencies:\n- dependency-name: hono\n  dependency-version: 4.12.26\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "bf039455851891577f6bd274917dabfed55e757d",
      "tree": "06e138ac4fcf5ae72ab3da3bd06c80320bfaa126",
      "parents": [
        "7803c2c4077d08d2bf7aa21abaf095e37b1505c4"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Jun 16 17:27:44 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Jun 16 17:27:44 2026 -0400"
      },
      "message": "Switch default to .json + POST, implement dual-mode API client\n\nThe Foal server uses the endpoint suffix to determine how to parse\nthe request body: .lua \u003d GET with query params, .json \u003d POST with\nJSON body. Both route to the same handlers.\n\n- Default PONYMAIL_API_SUFFIX to \".json\" (native Foal protocol)\n- apiFetch now automatically uses POST+JSON when suffix is \".json\"\n  and GET+params when \".lua\"\n- All raw fetch calls (get_source, auth_status) also handle both modes\n- Update README and TODO to reflect the new default\n\nSet PONYMAIL_API_SUFFIX\u003d.lua only for older deployments that lack\nthe .json route registration.\n"
    },
    {
      "commit": "7803c2c4077d08d2bf7aa21abaf095e37b1505c4",
      "tree": "1720195a7a206fbf17f9231e6877956e8674fc77",
      "parents": [
        "df47afa37ffb60e34aa49b03ff6dac0a14a70e24"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Jun 16 17:19:45 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Jun 16 17:19:45 2026 -0400"
      },
      "message": "Update docs to reflect new tools.\n"
    },
    {
      "commit": "df47afa37ffb60e34aa49b03ff6dac0a14a70e24",
      "tree": "1dc8e8c9e89c7edf293e6264505549f5924066f3",
      "parents": [
        "db6e26c7c765016b1e314443484d7996e7cea186"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Jun 16 17:08:58 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Tue Jun 16 17:08:58 2026 -0400"
      },
      "message": "Fix get_thread, add get_source, make API suffix configurable\n\nThe original MCP was built from an outdated and inaccurate version of\nthe PonyMail API documentation. With accurate docs now available\n(see apache/incubator-ponymail-foal#313), update the MCP to match\nthe actual Foal API:\n\n- get_thread: Use the dedicated /api/thread endpoint instead of\n  fetching a single email via /api/email and hoping for the best.\n  Now returns the full threaded tree + flat email array. Add\n  find_parent parameter to navigate to thread root from any message.\n\n- get_source: New tool — fetches raw RFC 2822 email source via\n  /api/source. Includes restriction/privacy checks.\n\n- API suffix: New PONYMAIL_API_SUFFIX env var (default \".lua\").\n  Set to \".json\" for native Foal deployments without the legacy\n  compat layer. All endpoint paths now use the configurable suffix.\n"
    },
    {
      "commit": "db6e26c7c765016b1e314443484d7996e7cea186",
      "tree": "aa59c9852d9c2a84d740e77f6bd7e92021ca0f8c",
      "parents": [
        "b1ce58288df6fbc77d27d4cd3743913b1fc7a8fd"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Jun 12 10:07:49 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Fri Jun 12 10:07:49 2026 -0400"
      },
      "message": "Reflect new location of this repo.\n"
    },
    {
      "commit": "b1ce58288df6fbc77d27d4cd3743913b1fc7a8fd",
      "tree": "7a90893abd7767d798d61f8ac56ede9553be3934",
      "parents": [
        "1b369cc0013be0107753019c80e36384842eacb1",
        "32e97a49b433acbdf434ea3f4b86052a9d5784bb"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Jun 11 18:51:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 18:51:13 2026 +0200"
      },
      "message": "Merge pull request #19 from potiuk/ponymail-mcp/fix-oauth-redirect\n\nponymail-mcp: redirect to the mailing list after OAuth login, not back to the paste form"
    },
    {
      "commit": "32e97a49b433acbdf434ea3f4b86052a9d5784bb",
      "tree": "7a90893abd7767d798d61f8ac56ede9553be3934",
      "parents": [
        "1b369cc0013be0107753019c80e36384842eacb1"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Jun 11 16:03:11 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Jun 11 18:48:09 2026 +0200"
      },
      "message": "ponymail-mcp: land users on the list after OAuth login, not the paste form\n\nPonyMail\u0027s oauth.html stores document.referrer in sessionStorage on load\nand redirects the user back to it after OAuth completes (falling back to\nthe list index \"./\" only when there is no referrer). Because the login\nhelper page is served from http://localhost, that localhost URL became\nthe stored origin, so after authenticating the user was bounced straight\nback to the still-open paste form instead of the mailing list.\n\nAdd rel\u003d\"noreferrer\" to the step-1 link so no referrer is sent; PonyMail\u0027s\nempty-origin fallback then lands the user on the real lists.apache.org\nlist index.\n\nGenerated-by: Claude Code 2.1.173 (Claude Opus 4.8)\n"
    },
    {
      "commit": "1b369cc0013be0107753019c80e36384842eacb1",
      "tree": "998df84e01d54163fa99d5f4e884cf26a22698cb",
      "parents": [
        "110d762f4be989cc22178fd6680567ebc224564f",
        "75f5be7f904f22a0d0103a4e17449ddeb2e74b37"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Jun 11 18:46:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 18:46:48 2026 +0200"
      },
      "message": "Merge pull request #20 from potiuk/fix-asf-highlights-license\n\nasf-highlights: add missing ASF license header to generate_asf_blog_posts.sh"
    },
    {
      "commit": "75f5be7f904f22a0d0103a4e17449ddeb2e74b37",
      "tree": "998df84e01d54163fa99d5f4e884cf26a22698cb",
      "parents": [
        "110d762f4be989cc22178fd6680567ebc224564f"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Jun 11 18:44:48 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Jun 11 18:44:48 2026 +0200"
      },
      "message": "asf-highlights: add missing ASF license header to generate_asf_blog_posts.sh\n\ngenerate_asf_blog_posts.sh shipped without the ASF license header, so the\ninsert-license prek hook (run as `prek run --all-files` in CI) fails on\nevery pull request regardless of what it touches. Add the standard header\nafter the shebang to restore a green static-checks run.\n\nGenerated-by: Claude Code 2.1.173 (Claude Opus 4.8)\n"
    },
    {
      "commit": "110d762f4be989cc22178fd6680567ebc224564f",
      "tree": "46d878b8b6244ed51276eef1e7a9236e78e33036",
      "parents": [
        "bff624b3222f76341b4d3473b08e6d5ec95df1d0",
        "3b290751fd8c402b29a3fe6b99b146011e6fa37d"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Mon Jun 01 08:09:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 08:09:23 2026 -0400"
      },
      "message": "Merge pull request #17 from apache/add-readonly-hints\n\nAdd readOnlyHint annotations to all read-only tools"
    },
    {
      "commit": "3b290751fd8c402b29a3fe6b99b146011e6fa37d",
      "tree": "46d878b8b6244ed51276eef1e7a9236e78e33036",
      "parents": [
        "bff624b3222f76341b4d3473b08e6d5ec95df1d0"
      ],
      "author": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Mon Jun 01 08:08:35 2026 -0400"
      },
      "committer": {
        "name": "Rich Bowen",
        "email": "rbowen@rcbowen.com",
        "time": "Mon Jun 01 08:08:35 2026 -0400"
      },
      "message": "Add readOnlyHint annotations to all read-only tools\n"
    },
    {
      "commit": "bff624b3222f76341b4d3473b08e6d5ec95df1d0",
      "tree": "a719713605a0b70d831f085b6ad739d60d26e695",
      "parents": [
        "4df5a59d617feafcddc980f1642e1610dcd8094f",
        "75fbe62aeedc908fae56adf2b313053080bb3473"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:50:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 15:50:02 2026 +0200"
      },
      "message": "Merge pull request #16 from potiuk/update-readme-subdirs\n\nDocument all project subdirectories in the README"
    },
    {
      "commit": "75fbe62aeedc908fae56adf2b313053080bb3473",
      "tree": "a719713605a0b70d831f085b6ad739d60d26e695",
      "parents": [
        "4df5a59d617feafcddc980f1642e1610dcd8094f"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:48:17 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:48:17 2026 +0200"
      },
      "message": "Document all project subdirectories in the README\n\nThe \"Contents of this repository\" list was missing the mcp/ servers and\nscripts/, and referred to project-activity as \"project-activities\". List\nevery top-level subdirectory with a short description and link:\nasf-highlights, project-activity, mcp (ponymail-mcp + apache-projects-mcp),\nand scripts, plus a pointer to AGENTS.md.\n\nGenerated-by: Claude Code 2.1.158 (Claude Opus 4.8)\n"
    },
    {
      "commit": "4df5a59d617feafcddc980f1642e1610dcd8094f",
      "tree": "db9b934ea3352a0db6bf8b8a7bbffb98c9ad147a",
      "parents": [
        "355b97a909d057ff8813f78e78b75b4078049024",
        "d1e7c579ceeecfee51b1c30f60c899e4622f2f4f"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:45:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 15:45:54 2026 +0200"
      },
      "message": "Merge pull request #15 from potiuk/fix-repo-homepage-link\n\nPoint GitHub repo homepage to community.apache.org"
    },
    {
      "commit": "d1e7c579ceeecfee51b1c30f60c899e4622f2f4f",
      "tree": "be4de9d5375c0a3e72fc84d4ef5494b13f7a1aa2",
      "parents": [
        "6dd78f44c15add46b34e34e7fd1b95d4e2153719"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:44:11 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:44:11 2026 +0200"
      },
      "message": "Point GitHub repo homepage to community.apache.org\n\nCloses #11. The repository\u0027s homepage link pointed to\nhttps://comdev.apache.org/; update it to https://community.apache.org/ via\nthe .asf.yaml github.homepage setting. The asfyaml infrastructure bot applies\nthis to the GitHub repository on merge to the default branch.\n\nGenerated-by: Claude Code 2.1.158 (Claude Opus 4.8)\n"
    },
    {
      "commit": "355b97a909d057ff8813f78e78b75b4078049024",
      "tree": "fb14034f4e6658cac4eb7e07ff0e754fa1eba7c1",
      "parents": [
        "6dd78f44c15add46b34e34e7fd1b95d4e2153719",
        "15bcff77a191aac7a00fd696a0c4d8ff8a6a0e6d"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:42:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 15:42:36 2026 +0200"
      },
      "message": "Merge pull request #14 from potiuk/fix-search-list-quick-undefined\n\nFix search_list rendering \"undefined\" email fields when quick\u003dtrue"
    },
    {
      "commit": "15bcff77a191aac7a00fd696a0c4d8ff8a6a0e6d",
      "tree": "fb14034f4e6658cac4eb7e07ff0e754fa1eba7c1",
      "parents": [
        "6dd78f44c15add46b34e34e7fd1b95d4e2153719"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:40:17 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun May 31 15:40:17 2026 +0200"
      },
      "message": "Fix search_list rendering \"undefined\" email fields when quick\u003dtrue\n\nFixes #9. In quick mode, PonyMail\u0027s /api/stats.lua returns email objects\nwithout subject/from/id, so the emails section rendered each entry as\n\"- **undefined**  From: undefined | ID: undefined\". Quick mode is documented\nas stats-only (emails_only exists for email summaries), so skip the emails\nsection entirely when quick\u003dtrue. The subject/from/id fields are also guarded\nwith fallbacks so a sparse entry never renders as \"undefined\".\n\nVerified live against dev@iceberg.apache.org (the reported repro): quick\u003dtrue\nnow returns stats only; emails_only\u003dtrue still renders populated subjects,\nsenders, and IDs.\n\nGenerated-by: Claude Code 2.1.158 (Claude Opus 4.8)\n"
    }
  ],
  "next": "6dd78f44c15add46b34e34e7fd1b95d4e2153719"
}
