)]}'
{
  "log": [
    {
      "commit": "9b0a0b650330f56f2a18518fe7dd65fc12671a61",
      "tree": "eac56f234b804ca0d21100f54383f408394939b0",
      "parents": [
        "4fb521ce7130f7fe5fc22ea25ca56ceeefbb81a6"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Fri Nov 06 08:00:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 17:00:33 2026 +1100"
      },
      "message": "Make deprecations warn and fail at their stated versions (#1802)\n\n* Make deprecations warn and fail at their stated versions\n\n`deprecated` promises that an API stops working by its `fail_starting`\nversion, but `_should_warn` and `_should_fail` compared the current version\nwith a strict `\u003e`. Every deprecation in the package names\n`fail_starting\u003d(2, 0, 0)`, so release 2.0.0 would only have warned, and the\nplanned removals would first have failed on 2.0.1. Warnings likewise started\none patch after `warn_starting`.\n\nBoth checks are now inclusive (`\u003e\u003d`). `Version` gets a full ordering from\n`dataclass(order\u003dTrue)`, replacing the hand-written `__gt__`, and the\ndocstring states the rule: a pre-release counts as its release, so 2.0.0rc1\nfails too.\n\nBoundary tests pin one patch below, at, and above both versions, for two\nschedules, on both a decorated function and a decorated class.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Fix the deprecated decorator\u0027s docstring example and error message\n\nThe usage example in `deprecated`\u0027s docstring was not valid Python: it named\n`@deprecate`, missed commas, and left a string unclosed. The error raised\nwhen neither a replacement nor a migration guide is given also named\n`@deprecate`. Both now name `@deprecated`, and the example parses.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "4fb521ce7130f7fe5fc22ea25ca56ceeefbb81a6",
      "tree": "95a52f731b4d91f860a21b078403e09c0ac1dc15",
      "parents": [
        "843d503d89ad17b7f3848e44e8c46c85b2836e54"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Tue Nov 03 19:34:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 17:34:44 2026 +0000"
      },
      "message": "Add scheduled daily canary CI to test compatibility with new dependencies (#1800)\n\n* Run main CI daily and report failures to Slack\n\nNo lockfile pins Hamilton\u0027s dependencies, so every CI run tests their\nnewest releases, yet nothing runs the workflow unless someone opens a\npull request. A dependency release that breaks main shows up first as\nan unrelated contributor\u0027s red pull request.\n\nRun the workflow every day at 04:17 UTC in apache/hamilton (forks skip\nit), and add a notify-slack job that posts the failed job and step\nnames and a link to the run when a scheduled run fails or a job hits\nits time limit. A manual run with the new notify-slack input on sends a\ntest message, so maintainers can check the webhook after merge.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Keep the notify job\u0027s outcome rule in one expression\n\nThe manual test message read the run\u0027s outcome from a shell `case`\nover the needed jobs\u0027 results, a second copy of the rule the job\u0027s\n`if:` already states. Compute it once, as an expression beside the\nother inputs to the step. Say in the fork guard\u0027s comment that every\njob in the workflow needs it, and that a manual test post reports\nwhether the run passed or failed.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "843d503d89ad17b7f3848e44e8c46c85b2836e54",
      "tree": "8edbed3664a5aa2c1a63ba9d67801dc2acec776b",
      "parents": [
        "6f1f9df52bb731dff782a6b1902e150d0671f8a7"
      ],
      "author": {
        "name": "digit50",
        "email": "93092234+digit50@users.noreply.github.com",
        "time": "Tue Nov 03 15:07:45 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 12:07:45 2026 +0000"
      },
      "message": "Fix Polars JSON and NDJSON reader type hints for loaders (#1762)\n\n* Fix Polars JSON and NDJSON reader type hints for loaders\n\nPolarsJSONReader and PolarsNDJSONReader annotated schema and schema_overrides with polars\u0027 SchemaDefinition, whose forward references cannot be resolved by typing.get_type_hints in this module. That broke @load_from.json/ndjson and from_.json/ndjson with a NameError. The fields now use a runtime-resolvable Mapping or Sequence annotation, and the values are still passed to polars unchanged.\n\nCloses https://github.com/apache/hamilton/issues/1757\n\n* Move the JSON reader type hint fix to a polars \u003e\u003d 2.0.0 module\n\nThe corrected schema and schema_overrides annotations for PolarsJSONReader and PolarsNDJSONReader now live in polars_post_2_0_0_extensions, which polars_extensions selects when the installed polars is 2.0.0 or later, the same way it selects the pre and post 1.0.0 modules. The module reuses the other post-1.0.0 adapters and registers them with the two replaced readers. The post-1.0.0 readers are restored to their original annotations, so polars 1.x is unchanged.\n\nThe driver tests for from_.json, from_.ndjson and load_from.ndjson run on polars 2.x, where the new readers are registered.\n\n* Revert \"Move the JSON reader type hint fix to a polars \u003e\u003d 2.0.0 module\"\nThis reverts commit ae82dbc3c1e731ed4312f31ddf4d72e74729780f.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: jernejfrank \u003cjernej@safeintelligence.ai\u003e\nCo-authored-by: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "6f1f9df52bb731dff782a6b1902e150d0671f8a7",
      "tree": "5ea0110daa30882cf5a1a8d4aea54a79bb0c69ad",
      "parents": [
        "5dabc51aecb0a7b3002c7ebf6b4a7311ed86d9de"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Tue Nov 03 13:28:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 11:28:19 2026 +0000"
      },
      "message": "Fix CI: cap Polars below 2.0 and fix PandasTableReader on pandas 3.1 (#1798)\n\n* Cap Polars below 2.0 in the test and docs groups\n\nPolars 2.0 removed reader arguments Hamilton still passes (rechunk on\nread_csv/scan_csv, row_count_offset on read_parquet/read_ipc and their\nscan_* counterparts), so six Polars reader tests fail on every PR once\nuv resolves polars 2.x. Keep CI on Polars 1.x until apache/hamilton#1784\nlands, then lift the cap.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Pass only one of sep and delimiter from PandasTableReader\n\nPandasTableReader forwarded every dataclass field to pd.read_table, so it\nalways sent sep\u003dNone and delimiter\u003dNone. pandas 3.1 counts any explicit\ndelimiter, None included, as conflicting with sep and raises \"ValueError:\nSpecified a sep and a delimiter; you can only specify one.\", which broke\nevery table load. On all pandas versions, passing delimiter\u003d alone raised\nthe same error, because sep\u003dNone was still sent.\n\nDrop delimiter when it is unset, and drop sep when only delimiter is set.\nsep\u003dNone is kept otherwise: pandas reads it as \"sniff the separator\",\nwhile omitting sep means tab, so dropping it would change the default.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Cap pandas below 3.1 in the pyspark extra\n\npyspark.pandas (4.3.0, the latest release) imports DateOffset from\npandas.tseries.frequencies, which pandas 3.1 removed, and pyspark\ndeclares no pandas upper bound. hamilton.plugins.h_spark imports\npyspark.pandas, so the Spark integration fails to import on pandas 3.1\nand plugin_tests/h_spark errors at collection on Python 3.11-3.14.\n\nScope the cap to the pyspark extra so only users of the Spark\nintegration are held back. Lift it once a pyspark release supports\npandas 3.1.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Drop Python 3.10 support\n\nPython 3.10 reached end of life on October 1, 2026, so the minimum\nsupported version becomes 3.11.\n\n- Pin the pyproject files to a minimum of Python 3.11\n- Remove 3.10 from the test and lint CI matrix\n- Repin the vaex tests to Python 3.11 and 3.12, which upstream supports now\n- Update the docs\n- Remove a nested CI file that never runs\n- Fix the conda build\n- Remove an xgboost test restriction that is now always satisfied\n\nSquashed from apache/hamilton#1797 (b9d31add).\n\n* Drop a timezone replace that Python 3.11 makes unnecessary\n\nWith the minimum Python at 3.11, ruff targets py311 and flags FURB162:\ndatetime.fromisoformat parses a trailing \"Z\" itself since Python 3.11,\nso replacing it with \"+00:00\" first is redundant. This was the Static\nChecks failure on apache/hamilton#1797.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Cap pandas below 3.1 in the docs group too\n\nThe docs workflow runs \"pip install --group docs\", which installs the\ngroup\u0027s bare pyspark but never the project\u0027s pyspark extra, so the cap\nthere did not apply. pip resolved pandas 3.1.0, pyspark.pandas failed to\nimport, and autodoc\u0027s four h_spark import warnings failed the\nwarnings-as-errors Sphinx build.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nCo-authored-by: jernejfrank \u003cjernej@safeintelligence.ai\u003e"
    },
    {
      "commit": "5dabc51aecb0a7b3002c7ebf6b4a7311ed86d9de",
      "tree": "81b57da41a0cbab72b05ca7814606e001b9673de",
      "parents": [
        "8780b6794ac54e6b309564c7b6cbb15fddc6f393"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Nov 01 09:26:23 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 01 09:26:23 2026 -0800"
      },
      "message": "Bump react-router and react-router-dom in /ui/frontend (#1730)\n\nBumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) to 7.18.5 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom). These dependencies need to be updated together.\n\n\nUpdates `react-router` from 6.30.6 to 7.18.5\n- [Release notes](https://github.com/remix-run/react-router/releases)\n- [Changelog](https://github.com/remix-run/react-router/blob/react-router@7.18.5/packages/react-router/CHANGELOG.md)\n- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.18.5/packages/react-router)\n\nUpdates `react-router-dom` from 6.30.6 to 7.18.5\n- [Release notes](https://github.com/remix-run/react-router/releases)\n- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.5/packages/react-router-dom/CHANGELOG.md)\n- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.5/packages/react-router-dom)\n\n---\nupdated-dependencies:\n- dependency-name: react-router\n  dependency-version: 7.18.4\n  dependency-type: indirect\n- dependency-name: react-router-dom\n  dependency-version: 7.18.4\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8780b6794ac54e6b309564c7b6cbb15fddc6f393",
      "tree": "4b4f74048e0ecccf4ead178c979cf408318dcf0f",
      "parents": [
        "9975bfe30803ec4bcf5d5e743312b9261bb72399"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Nov 01 09:26:10 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 01 09:26:10 2026 -0800"
      },
      "message": "Bump follow-redirects from 1.16.1 to 1.16.2 in /ui/frontend (#1792)\n\nBumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.16.1 to 1.16.2.\n- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)\n- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.16.1...v1.16.2)\n\n---\nupdated-dependencies:\n- dependency-name: follow-redirects\n  dependency-version: 1.16.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9975bfe30803ec4bcf5d5e743312b9261bb72399",
      "tree": "50eb86b4ac9da9da485aaa6fcd9e72b5c237fbf1",
      "parents": [
        "4b08abfd01ec97a3b60fa109cf7d43bb8e3b74db"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Nov 01 09:25:57 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 01 09:25:57 2026 -0800"
      },
      "message": "Bump qs from 6.15.2 to 6.15.4 in /contrib/docs (#1793)\n\nBumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.15.4.\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.15.4)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n  dependency-version: 6.15.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4b08abfd01ec97a3b60fa109cf7d43bb8e3b74db",
      "tree": "9beed924f7aa2f24bbca0cf3f0f1684b22bcdb24",
      "parents": [
        "e8e266c481a03b3e430c5065aebaed3042237bf2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Nov 01 09:25:44 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 01 09:25:44 2026 -0800"
      },
      "message": "Bump joi from 17.13.8 to 17.13.9 in /contrib/docs (#1794)\n\nBumps [joi](https://github.com/hapijs/joi) from 17.13.8 to 17.13.9.\n- [Commits](https://github.com/hapijs/joi/compare/v17.13.8...v17.13.9)\n\n---\nupdated-dependencies:\n- dependency-name: joi\n  dependency-version: 17.13.9\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e8e266c481a03b3e430c5065aebaed3042237bf2",
      "tree": "a3d452131568a583524feaf90bc3d73d0e5be8e3",
      "parents": [
        "72ed393554cc90f2a96ddb09ec44703887ce4ecc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 31 16:20:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 16:20:44 2026 -0700"
      },
      "message": "Bump ddtrace from 4.8.2 to 4.15.6 in /ui/backend (#1790)\n\nBumps [ddtrace](https://github.com/DataDog/dd-trace-py) from 4.8.2 to 4.15.6.\n- [Release notes](https://github.com/DataDog/dd-trace-py/releases)\n- [Changelog](https://github.com/DataDog/dd-trace-py/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/DataDog/dd-trace-py/compare/v4.8.2...v4.15.6)\n\n---\nupdated-dependencies:\n- dependency-name: ddtrace\n  dependency-version: 4.15.6\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "72ed393554cc90f2a96ddb09ec44703887ce4ecc",
      "tree": "bec7e51da32a85685014f88801cfea96802d1208",
      "parents": [
        "df85e45c3616657999049cffb397dfce1a0a6bdd"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 31 16:18:23 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 16:18:23 2026 -0700"
      },
      "message": "Bump brace-expansion in /dev_tools/vscode_extension (#1750)\n\nBumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.13 to 1.1.21.\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.13...v1.1.21)\n\n---\nupdated-dependencies:\n- dependency-name: brace-expansion\n  dependency-version: 1.1.21\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "df85e45c3616657999049cffb397dfce1a0a6bdd",
      "tree": "c42e85cd6414516b44c1c7912731869653c86c96",
      "parents": [
        "50d5cd88184744240ef784d35cb058022f7e391a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 31 16:18:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 16:18:12 2026 -0700"
      },
      "message": "Bump serialize-javascript, mocha and terser-webpack-plugin (#1787)\n\nRemoves [serialize-javascript](https://github.com/yahoo/serialize-javascript). It\u0027s no longer used after updating ancestor dependencies [serialize-javascript](https://github.com/yahoo/serialize-javascript), [mocha](https://github.com/mochajs/mocha) and [terser-webpack-plugin](https://github.com/webpack/minimizer-webpack-plugin). These dependencies need to be updated together.\n\n\nRemoves `serialize-javascript`\n\nUpdates `mocha` from 10.8.2 to 12.0.3\n- [Release notes](https://github.com/mochajs/mocha/releases)\n- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/mochajs/mocha/compare/v10.8.2...v12.0.3)\n\nUpdates `terser-webpack-plugin` from 5.3.16 to 5.6.1\n- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)\n- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.16...v5.6.1)\n\n---\nupdated-dependencies:\n- dependency-name: serialize-javascript\n  dependency-version:\n  dependency-type: indirect\n- dependency-name: mocha\n  dependency-version: 12.0.3\n  dependency-type: direct:development\n- dependency-name: terser-webpack-plugin\n  dependency-version: 5.6.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "50d5cd88184744240ef784d35cb058022f7e391a",
      "tree": "de86807164713964e5e372e1416b0b6c0d6fee13",
      "parents": [
        "4352469ee3d8629f778aec5fe9e1da8c51ec59cf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 31 16:18:01 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 16:18:01 2026 -0700"
      },
      "message": "Bump fast-uri from 3.1.7 to 3.1.9 in /dev_tools/vscode_extension (#1788)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.7 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.7...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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4352469ee3d8629f778aec5fe9e1da8c51ec59cf",
      "tree": "8595f08814c953543a8f1a99119de6e23e3b8ecf",
      "parents": [
        "034ca971eb008114aa287aed51e9ff7714b25e9c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:15:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:15:08 2026 -0700"
      },
      "message": "Bump ip-address from 10.4.0 to 10.7.2 in /ui/frontend (#1741)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "034ca971eb008114aa287aed51e9ff7714b25e9c",
      "tree": "dba7c0c6719ce2e865acebf89300382c8cc961ff",
      "parents": [
        "3f5c2f8c996a15e1fe3eb3584145fcd06474fa86"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:14:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:14:55 2026 -0700"
      },
      "message": "Bump nanoid from 3.3.16 to 3.3.19 in /contrib/docs (#1742)\n\nBumps [nanoid](https://github.com/ai/nanoid) from 3.3.16 to 3.3.19.\n- [Release notes](https://github.com/ai/nanoid/releases)\n- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ai/nanoid/compare/3.3.16...3.3.19)\n\n---\nupdated-dependencies:\n- dependency-name: nanoid\n  dependency-version: 3.3.19\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3f5c2f8c996a15e1fe3eb3584145fcd06474fa86",
      "tree": "92f03e4181252d5d2e7fbefd5e858951b1db4fcb",
      "parents": [
        "a5a72120a8daf1b5500b34b07e54864837a49947"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:14:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:14:43 2026 -0700"
      },
      "message": "Bump moment from 2.30.1 to 2.31.0 in /ui/frontend (#1744)\n\nBumps [moment](https://github.com/moment/moment) from 2.30.1 to 2.31.0.\n- [Release notes](https://github.com/moment/moment/releases)\n- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)\n- [Commits](https://github.com/moment/moment/compare/2.30.1...2.31.0)\n\n---\nupdated-dependencies:\n- dependency-name: moment\n  dependency-version: 2.31.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a5a72120a8daf1b5500b34b07e54864837a49947",
      "tree": "92a72d234b8565835b1cb155a57588167ed8e903",
      "parents": [
        "ee83777bf42031fa136fc9280f898a232dfb72db"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:14:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:14:33 2026 -0700"
      },
      "message": "Bump urllib3 from 2.7.0 to 2.8.0 in /ui/backend (#1746)\n\nBumps [urllib3](https://github.com/urllib3/urllib3) from 2.7.0 to 2.8.0.\n- [Release notes](https://github.com/urllib3/urllib3/releases)\n- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)\n- [Commits](https://github.com/urllib3/urllib3/compare/2.7.0...2.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: urllib3\n  dependency-version: 2.8.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ee83777bf42031fa136fc9280f898a232dfb72db",
      "tree": "8aa2366b3e7ff2384ce32c8285e57130f9e3609d",
      "parents": [
        "fbee236bb0d935ec10e41bd16e14a226d6366160"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:14:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:14:21 2026 -0700"
      },
      "message": "Bump django from 5.2.16 to 5.2.17 in /ui/backend (#1747)\n\nBumps [django](https://github.com/django/django) from 5.2.16 to 5.2.17.\n- [Commits](https://github.com/django/django/compare/5.2.16...5.2.17)\n\n---\nupdated-dependencies:\n- dependency-name: django\n  dependency-version: 5.2.17\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fbee236bb0d935ec10e41bd16e14a226d6366160",
      "tree": "dfa55b76e6755390234d94d7119aa99f6410e03e",
      "parents": [
        "a1b5fba4b07836d9c4b300e28c76d6e56d0b4bec"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:14:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:14:10 2026 -0700"
      },
      "message": "Bump shell-quote from 1.10.0 to 1.12.0 in /contrib/docs (#1753)\n\nBumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.10.0 to 1.12.0.\n- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/shell-quote/compare/v1.10.0...v1.12.0)\n\n---\nupdated-dependencies:\n- dependency-name: shell-quote\n  dependency-version: 1.12.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a1b5fba4b07836d9c4b300e28c76d6e56d0b4bec",
      "tree": "52ca727ba04d0f1aebabb5a18e11b794aff67ff4",
      "parents": [
        "6ac6a8554f1b5478f72e02226bce50acf84024bc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:13:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:13:59 2026 -0700"
      },
      "message": "Bump proxy-addr from 2.0.7 to 2.0.8 in /contrib/docs (#1754)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6ac6a8554f1b5478f72e02226bce50acf84024bc",
      "tree": "fb3156fcb195374c9afeac85a3e478840dc51aee",
      "parents": [
        "f1a89f9c60042d33e65a34af5c96e814aa765d03"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:13:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:13:48 2026 -0700"
      },
      "message": "Bump joi from 17.13.7 to 17.13.8 in /contrib/docs (#1755)\n\nBumps [joi](https://github.com/hapijs/joi) from 17.13.7 to 17.13.8.\n- [Commits](https://github.com/hapijs/joi/compare/v17.13.7...v17.13.8)\n\n---\nupdated-dependencies:\n- dependency-name: joi\n  dependency-version: 17.13.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f1a89f9c60042d33e65a34af5c96e814aa765d03",
      "tree": "addab8c56c2ee68fb502d3a8ec89b6949ccc8787",
      "parents": [
        "2926ff9a614728710c9b00ceaee906e20397965f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:13:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:13:38 2026 -0700"
      },
      "message": "Bump brace-expansion from 1.1.18 to 1.1.21 in /contrib/docs (#1769)\n\nBumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.18 to 1.1.21.\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.18...v1.1.21)\n\n---\nupdated-dependencies:\n- dependency-name: brace-expansion\n  dependency-version: 1.1.21\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2926ff9a614728710c9b00ceaee906e20397965f",
      "tree": "0936c88b58e0a8eda701d7b3f883771341faab88",
      "parents": [
        "46fdb74794fe805a9fd44ce5b268ab3f7d307e1c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:13:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:13:27 2026 -0700"
      },
      "message": "Bump aiohttp from 3.14.3 to 3.14.4 in /ui/backend (#1771)\n\n---\nupdated-dependencies:\n- dependency-name: aiohttp\n  dependency-version: 3.14.4\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "46fdb74794fe805a9fd44ce5b268ab3f7d307e1c",
      "tree": "458f81599b213854b84c169a5fe4cec29598dd35",
      "parents": [
        "72a9f39b809faf6e3f893060ec3105ff45ae3897"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:13:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:13:16 2026 -0700"
      },
      "message": "Bump compression from 1.8.1 to 1.8.2 in /contrib/docs (#1772)\n\nBumps [compression](https://github.com/expressjs/compression) from 1.8.1 to 1.8.2.\n- [Release notes](https://github.com/expressjs/compression/releases)\n- [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md)\n- [Commits](https://github.com/expressjs/compression/compare/v1.8.1...v1.8.2)\n\n---\nupdated-dependencies:\n- dependency-name: compression\n  dependency-version: 1.8.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "72a9f39b809faf6e3f893060ec3105ff45ae3897",
      "tree": "7f8a464f4d2fed7b602b570fa81968a940cc1ee0",
      "parents": [
        "4777a38ed2f6e1b9f4b1082c84bcd36dc556ad11"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:13:04 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:13:04 2026 -0700"
      },
      "message": "Bump multidict from 6.7.1 to 6.9.1 in /ui/backend (#1773)\n\nBumps [multidict](https://github.com/aio-libs/multidict) from 6.7.1 to 6.9.1.\n- [Release notes](https://github.com/aio-libs/multidict/releases)\n- [Changelog](https://github.com/aio-libs/multidict/blob/master/CHANGES.rst)\n- [Commits](https://github.com/aio-libs/multidict/compare/v6.7.1...v6.9.1)\n\n---\nupdated-dependencies:\n- dependency-name: multidict\n  dependency-version: 6.9.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4777a38ed2f6e1b9f4b1082c84bcd36dc556ad11",
      "tree": "f575aa8f4707b5a66e017ab32019cd6a90881dbe",
      "parents": [
        "8d7b4927abe99fbca075c022eafb4e511d7f7f53"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:12:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:12:52 2026 -0700"
      },
      "message": "Bump undici from 6.28.0 to 6.29.1 in /ui/frontend (#1774)\n\nBumps [undici](https://github.com/nodejs/undici) from 6.28.0 to 6.29.1.\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v6.28.0...v6.29.1)\n\n---\nupdated-dependencies:\n- dependency-name: undici\n  dependency-version: 6.29.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8d7b4927abe99fbca075c022eafb4e511d7f7f53",
      "tree": "f3a109880e36099576ac4b6c898801dc8c993b22",
      "parents": [
        "008ffe0fcebbfc64161998b58c492f559fe9136f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:12:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:12:41 2026 -0700"
      },
      "message": "Bump source-map-js from 1.2.1 to 1.2.2 in /contrib/docs (#1775)\n\nBumps [source-map-js](https://github.com/7rulnik/source-map-js) from 1.2.1 to 1.2.2.\n- [Release notes](https://github.com/7rulnik/source-map-js/releases)\n- [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/7rulnik/source-map-js/compare/v1.2.1...v1.2.2)\n\n---\nupdated-dependencies:\n- dependency-name: source-map-js\n  dependency-version: 1.2.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "008ffe0fcebbfc64161998b58c492f559fe9136f",
      "tree": "26930d8582a0b04db3328e978913eb63b733c1dc",
      "parents": [
        "24b876c847a8c9ab71372a2b56825715a9578d15"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:12:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:12:28 2026 -0700"
      },
      "message": "Bump vite from 8.2.0 to 8.3.4 in /ui/frontend (#1776)\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.2.0 to 8.3.4.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v8.3.4/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-version: 8.3.4\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "24b876c847a8c9ab71372a2b56825715a9578d15",
      "tree": "d245d6b999484a5df36a10bcc2de9d304d1b594f",
      "parents": [
        "a987827493f1d0a705c05f9dc98cd7fd2c0c32d0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:12:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:12:17 2026 -0700"
      },
      "message": "Bump follow-redirects from 1.16.0 to 1.16.1 in /ui/frontend (#1777)\n\nBumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.16.0 to 1.16.1.\n- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)\n- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.16.0...v1.16.1)\n\n---\nupdated-dependencies:\n- dependency-name: follow-redirects\n  dependency-version: 1.16.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a987827493f1d0a705c05f9dc98cd7fd2c0c32d0",
      "tree": "a8c51e01f0a14b3f7333d5a7bc594832050f56b4",
      "parents": [
        "d587447935405f35c8e7c6f3545f4116a48c9bb0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:12:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:12:06 2026 -0700"
      },
      "message": "Bump certifi from 2026.1.4 to 2026.10.19 in /ui/backend (#1780)\n\nBumps [certifi](https://github.com/certifi/python-certifi) from 2026.1.4 to 2026.10.19.\n- [Commits](https://github.com/certifi/python-certifi/compare/2026.01.04...2026.10.19)\n\n---\nupdated-dependencies:\n- dependency-name: certifi\n  dependency-version: 2026.10.19\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d587447935405f35c8e7c6f3545f4116a48c9bb0",
      "tree": "849516fa3a04ea4e1ec0decc09c209c11ffbc7a5",
      "parents": [
        "6df9fe70a9ce774824b3df73835ee27ff644558b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:11:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:11:54 2026 -0700"
      },
      "message": "Bump opentelemetry-api from 1.39.1 to 1.45.1 in /ui/backend (#1781)\n\nBumps [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) from 1.39.1 to 1.45.1.\n- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)\n- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.45.1)\n\n---\nupdated-dependencies:\n- dependency-name: opentelemetry-api\n  dependency-version: 1.45.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6df9fe70a9ce774824b3df73835ee27ff644558b",
      "tree": "df8db9076d4e5286350de67dbd6eae5346435e35",
      "parents": [
        "b0aa081c2afa82bfd42ad982c9e810d603657262"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:11:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:11:43 2026 -0700"
      },
      "message": "Bump dompurify from 3.4.13 to 3.4.17 in /ui/frontend (#1782)\n\nBumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.13 to 3.4.17.\n- [Release notes](https://github.com/cure53/DOMPurify/releases)\n- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.13...3.4.17)\n\n---\nupdated-dependencies:\n- dependency-name: dompurify\n  dependency-version: 3.4.17\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b0aa081c2afa82bfd42ad982c9e810d603657262",
      "tree": "87865d0affc16cdb36ff4e2ff4d2536495b1fbeb",
      "parents": [
        "fa786eae13145af0961238b823b3aa8112199f43"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 27 11:11:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:11:33 2026 -0700"
      },
      "message": "Bump launch-editor from 2.14.1 to 2.14.2 in /contrib/docs (#1783)\n\nBumps [launch-editor](https://github.com/vitejs/launch-editor) from 2.14.1 to 2.14.2.\n- [Commits](https://github.com/vitejs/launch-editor/compare/v2.14.1...v2.14.2)\n\n---\nupdated-dependencies:\n- dependency-name: launch-editor\n  dependency-version: 2.14.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fa786eae13145af0961238b823b3aa8112199f43",
      "tree": "9019219467c7c4da91411c9b7573ba7917b13e11",
      "parents": [
        "f15267da5ee56bbe11d704da2bb2c4b8e8615d7c"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Tue Sep 29 07:08:03 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 14:08:03 2026 +1000"
      },
      "message": "OpenLineage: Automatic SQL datasource metadata and table lineage (#1720)\n\n* OpenLineage: automatic SQL datasource metadata and table lineage\n\nHamilton\u0027s built-in SQL loaders/savers (`@load_from.sql`, `@save_to.sql`,\n`from_.sql`/`to.sql`, and the underlying `PandasSqlReader`/`PandasSqlWriter`)\nnow capture enough datasource context on their own for table-level lineage,\nwithout any custom loader or hand-maintained mapping.\n\nMotivating use case: a graph reads a query joining `orders` and `customers`\nfrom a sales database, aggregates daily revenue in Python, and writes\n`daily_revenue` to a separate warehouse database. Previously the emitted SQL\nmetadata had no table name for a query read, and the OpenLineage adapter\nfiled writes under the job namespace with a bare table name, so a report\nwritten by one job and read by another could not be connected, and same-named\ntables in different databases were indistinguishable. Users had to write a\ncustom loader and duplicate connection details to get real lineage.\n\nCore (`hamilton/io/utils.py`):\n- `get_sql_metadata()` gains optional keyword `db_connection`/`schema`\n  params and a version-1.1.0 `sql_metadata` shape: `schema`, `operation`\n  (read/write), `source` (dialect, host, port, database, default schema —\n  scalars only, never credentials or live objects), and `notes` explaining\n  an unresolved source. The legacy two-argument call keeps its keys and\n  row-count semantics.\n- New `get_sql_source()` inspects SQLAlchemy URL strings, Engines and\n  Connections, and raw `sqlite3` connections, read-only: no new connection,\n  no transaction, no session-setting query. In-memory SQLite is deliberately\n  left unidentified rather than given a shared/fabricated identity.\n\nPandas SQL I/O (`hamilton/plugins/pandas_extensions.py`):\n- `PandasSqlReader`/`PandasSqlWriter` pass their connection and (for the\n  writer) explicit schema into the new metadata; the reader\u0027s connection\n  type is widened to `Any` to match what it already accepted in practice\n  (SQLAlchemy Engines/Connections, not just `str | sqlite3.Connection`).\n\nOpenLineage integration (`hamilton/plugins/h_openlineage.py`):\n- New reusable `sql_datasets(sql_metadata, operation\u003dNone) -\u003e SqlDatasets`\n  converts Hamilton\u0027s SQL metadata into OpenLineage datasets using the\n  `openlineage-sql` parser: every physical table a query reads/writes is\n  named per the OpenLineage naming convention (`postgres://host:port` +\n  `database.schema.table` for PostgreSQL, `sqlite://path` + `table` for\n  SQLite), aliases and CTEs excluded, quoting/case-folding respected.\n  Emits nothing, opens nothing, so a future Airflow provider (or anything\n  else) can call it directly.\n- `OpenLineageAdapter` routes SQL nodes through it, so dataset identity\n  comes from the datasource rather than the job namespace — a read of a\n  report now resolves to the same identity it was written under. A\n  conversion failure is logged (exception type only, never a message that\n  might quote a connection string) and the run event is still emitted\n  without datasets; the underlying SQL I/O is never affected.\n\nPackaging/CI:\n- `openlineage` extra gains `openlineage-sql` (no Windows wheel; marked\n  `sys_platform !\u003d \u0027win32\u0027` so the base extra still installs there).\n- `.github/workflows/hamilton-main.yml` adds a disposable `postgres:16`\n  service and a \"Test openlineage\" step across the Python matrix.\n\nTests: `tests/io/test_utils.py` and `tests/plugins/test_pandas_extensions.py`\nextended; new `tests/plugins/test_h_openlineage.py` covers dataset naming\n(SQLite and PostgreSQL, env-gated via `HAMILTON_TEST_POSTGRES_URL`), schema\nprecedence, credential-leak negatives, and that metadata/parser failures\nnever turn a successful SQL read/write into a failed node. A disposable\nper-test PostgreSQL schema fixture is added to `tests/conftest.py`.\n\nDocs: `docs/concepts/materialization.rst` gains a \"SQL metadata and\nlineage\" section (fields, supported connections, precedence, failure\nbehavior); `docs/reference/lifecycle-hooks/OpenLineageAdapter.rst` documents\ndataset naming, the identity change from job-scoped SQL datasets, and the\nreusable `sql_datasets()` entry point. The `examples/openlineage` example\nis rewritten around the revenue-reporting story on two local SQLite files,\nrunnable with no external server.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n* Keep OpenLineage SQL dataset identity backward compatible\n\nFollow-up to the maintainer\u0027s review. Each decision below, with its context\nand the alternatives rejected, is recorded in writeups/adr/:\n\n- 2609-01: OpenLineageAdapter(sql_dataset_identity\u003d\"legacy\" | \"datasource\").\n  The default stays \"legacy\", which emits exactly what earlier releases\n  emitted and needs no openlineage-sql. Leaving it unset warns once\n  (FutureWarning) with migration steps. Lineage never fails a node.\n  create_input_dataset/create_output_dataset keep their SQL handling.\n- 2609-02: SQL metadata keeps the 1.0.0 query/table_name filing, and\n  get_sql_metadata(operation\u003d) carries read/write intent. Reads also\n  recognise select/with statements in any case (a linear scan).\n- 2609-03: datasource mode resolves what a write names by parsing: a plain\n  name is the table, a statement contributes its written tables, and\n  nothing is guessed without a parse. The job\u0027s sql facet comes from the\n  statement actually resolved.\n- 2609-04: SQLite tables in attached databases are named by their own file.\n\nDocs, examples and tests are updated to match.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* Emit OpenLineage inputs for reads by non-plain table names\n\nA PandasSqlReader(\"daily revenue\", engine) read succeeds, but datasource\nmode re-parsed the name as SQL and emitted no input dataset. A read string\nfiled under table_name is now the table read when openlineage-sql reports\nthat no statement starts at its first character; the read succeeded, so\npandas found it as a table.\n\nAnything else stays SQL, so read statements that metadata files under\ntable_name (\"(select * from t)\", \"values (1)\", \"pragma ...\") are still\nnever named as datasets. A string starting with \"table\" is never a name,\nsince Postgres\u0027 TABLE t is a statement the parser rejects at its first\nword. An unexpected parser message or no parser leaves the read out with a\nnote, as before.\n\nAddresses review feedback on apache/hamilton#1720.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* Install openlineage-sql with the OpenLineage extra on Windows too\n\nopenlineage-sql publishes no Windows wheel, but its sdist builds there with\na Rust toolchain. Drop the sys_platform marker so the extra no longer skips\nthe parser on Windows, and reword the adapter docs and ADRs to describe the\nsource build instead of assuming the parser is unavailable.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* Record SQLite file paths with forward slashes on every platform\n\nOn Windows the SQLite datasource path, and so the OpenLineage namespace,\nused native backslashes (sqlite://C:\\Users\\...\\warehouse.db), which is\nunusual in a URI-like namespace. get_sql_source now records absolute SQLite\npaths, including attached databases, via Path.as_posix(), giving\nsqlite://C:/Users/.../warehouse.db. The conversion happens where the\nmetadata is produced, the only place that knows which platform the path is\nfrom; Windows accepts forward-slash paths, so the metadata stays usable.\n\nPaths on Linux and macOS are unchanged.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "f15267da5ee56bbe11d704da2bb2c4b8e8615d7c",
      "tree": "8cc08c97ad66a3c11fd53a2e6c3114976149d88d",
      "parents": [
        "da48e84f5b6ae077b872ac10bf84fd5e8c6ffcba"
      ],
      "author": {
        "name": "Probablism",
        "email": "luke.lukemelton.melton@gmail.com",
        "time": "Sat Sep 26 16:13:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 06:13:47 2026 +1000"
      },
      "message": "Allow inject to compose with parameterize (#1650)\n\nFixes #160.\n\nThis updates expander resolution so `@inject` can run before regular expanders such as `@parameterize`. That lets an injected dependency be available when the parameterized function variants are created.\n\n## Changes\n\n- Add a pre-expander pass for expanders that need to run before regular node expansion.\n- Mark `@inject` as a pre-expander while keeping the existing single regular expander restriction.\n- Validate that injected target parameters do not overlap with parameters consumed by regular parameterization.\n- Add regression coverage for both decorator orders and the overlapping-parameter failure case.\n\n## How I tested this\n\n- `tests/function_modifiers/test_expanders.py` passed locally.\n- The main package test suite passed locally: 1446 passed, 5 skipped, 2 xpassed.\n- Static lint/format checks passed locally.\n- Fork GitHub Actions Unit Tests passed on `fix-inject-parameterize` across Python 3.10 through 3.14.\n\n## Notes\n\n- No user-facing documentation changes were needed; this is a decorator composition bug fix.\n\n## Checklist\n\n- [x] PR has an informative and human-readable title (this will be pulled into the release notes)\n- [x] Changes are limited to a single goal (no scope creep)\n- [x] Code passed the pre-commit check \u0026 code is left cleaner/nicer than when first encountered.\n- [x] Any _change_ in functionality is tested\n- [x] New functions are documented (with a description, list of inputs, and expected output)\n- [x] Placeholder code is flagged / future TODOs are captured in comments\n- [x] Project documentation has been updated if adding/changing functionality."
    },
    {
      "commit": "da48e84f5b6ae077b872ac10bf84fd5e8c6ffcba",
      "tree": "ae0bb399b383f9e033bf8433b57861e87035e66e",
      "parents": [
        "b7a7b1caa40b842ed7af8b822209cfff4e901845"
      ],
      "author": {
        "name": "Digvijay",
        "email": "digvijay.vaghela@yahoo.com",
        "time": "Sat Sep 26 15:12:51 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 06:12:51 2026 +1000"
      },
      "message": "Fix Polars temporal column stats JSON serialization for tracker (#1675)\n\n* Make Polars temporal column stats JSON-safe for the tracker\n\nDatetime tracking for #1127 already avoids std(); extend the same\ndatetime stats path so Time and Duration values serialize cleanly,\nand add a Datetime regression test matching the reported failure.\n\n* Route Polars Time/Duration column stats to unhandled\n\nTime and Duration values are not valid JS Dates, so sending them through datetime stats breaks the UI range renderer. Keep Date/Datetime on the ISO datetime path and leave Time/Duration for unhandled stats.\n\n---------\n\nCo-authored-by: Digvijay  Waghela \u003cdigvijaywaghela@Digvijays-MacBook-Pro.local\u003e"
    },
    {
      "commit": "b7a7b1caa40b842ed7af8b822209cfff4e901845",
      "tree": "fb5aeace1013fcae405893d4b7340ccf11432cba",
      "parents": [
        "00fd4bb0e5d87f680cc609eeda0615232e3580da"
      ],
      "author": {
        "name": "Andrew Chen",
        "email": "chuenchen309@gmail.com",
        "time": "Sun Sep 27 03:40:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 05:40:13 2026 +1000"
      },
      "message": "Fix UnboundLocalError masking real errors in Driver.materialize() (#1662)\n\n* Fix UnboundLocalError masking real errors in Driver.materialize()\n\nThe `finally` block at driver.py:1616 passes `function_graph` to the\npost_graph_execute hook, but that local only binds at :1568. Any error\nraised before it -- including the \"No output requested\" ValueError added\nin #810 for #796 -- makes the finally die with UnboundLocalError instead,\nhiding the real cause.\n\n`outputs` and `materializer_vars` were already pre-initialized for exactly\nthis reason (\"This is so the finally logging statement does not accidentally\ndie\"); `function_graph` was missed. Pre-initialize it the same way.\n\nThis only surfaces when a post_graph_execute hook is registered, which\ngates the finally block. #796\u0027s reporter used h_experiments.ExperimentTracker\n-- one such hook -- so the fix in #810 never reached the reported case.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n\n* Potential fix for pull request finding\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Stefan Krawczyk \u003cstefan@dagworks.io\u003e\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "00fd4bb0e5d87f680cc609eeda0615232e3580da",
      "tree": "f6e9a570a346b07b07bcb7967425f0032b9643ab",
      "parents": [
        "bbd7b21b8fe4a3f8850753d05d386e776febbe78"
      ],
      "author": {
        "name": "Stefan Krawczyk",
        "email": "skrawcz@apache.org",
        "time": "Sat Sep 26 12:20:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 05:20:54 2026 +1000"
      },
      "message": "Document pickle loader trust requirements (#1702)\n\nSo that we document our model."
    },
    {
      "commit": "bbd7b21b8fe4a3f8850753d05d386e776febbe78",
      "tree": "0646476ffd30f09b3c901f96e596148696276c7f",
      "parents": [
        "c12268c2e1f0e4ae74bdf87a66728049cc086e11"
      ],
      "author": {
        "name": "breken",
        "email": "support@brekfuz.com",
        "time": "Sat Sep 26 12:15:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 05:15:13 2026 +1000"
      },
      "message": "Handle `X[...] | None` unions in FunctionInputOutputTypeChecker (#1736)\n\nhtypes.check_instance looked up `__origin__` to detect unions, but PEP 604\nunions (types.UnionType) have none on Python 3.10-3.13, so the function fell\nthrough to isinstance(obj, list[int] | None), which raises\n\"TypeError: isinstance() argument 2 cannot be a parameterized generic\".\nWith FunctionInputOutputTypeChecker enabled, any node annotated with such a\nunion (input or return) crashed the run even when the value was correct.\n\nCheck each member of a types.UnionType, as is already done for\ntyping.Union.\n\nGenerated-by: Claude Code (Claude Opus 5.5)\n\nCo-authored-by: breken-ai \u003c312387581+breken-ai@users.noreply.github.com\u003e\nCo-authored-by: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "c12268c2e1f0e4ae74bdf87a66728049cc086e11",
      "tree": "2bde7c35280bed6429515dd725d92acec5b8da60",
      "parents": [
        "ed4a58e8b92cffa48d72e66cefb3e1c331374cdf"
      ],
      "author": {
        "name": "breken",
        "email": "support@brekfuz.com",
        "time": "Sat Sep 26 12:14:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 05:14:36 2026 +1000"
      },
      "message": "Raise InvalidDecoratorException for unknown TypedDict fields in extract_fields (#1733)\n\nWhen extract_fields is given a list of field names and the function\nreturns a TypedDict, a name that is not in the TypedDict was recorded as\nan error and then looked up anyway, so users got a bare KeyError instead\nof the error that lists the invalid fields.\n\nSkip the lookup for unknown fields so the collected errors are raised.\n\nGenerated-by: Claude Code (Claude Opus 5.5)\n\nCo-authored-by: breken-ai \u003c312387581+breken-ai@users.noreply.github.com\u003e"
    },
    {
      "commit": "ed4a58e8b92cffa48d72e66cefb3e1c331374cdf",
      "tree": "da209af5cae604ed974f52ad30750de65a0c24cd",
      "parents": [
        "8769535e0daee2f0d65c1568e228093cd731a2a6"
      ],
      "author": {
        "name": "breken",
        "email": "support@brekfuz.com",
        "time": "Sat Sep 26 12:05:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 05:05:43 2026 +1000"
      },
      "message": "Respect reassign_columns\u003dFalse in parameterize_extract_columns (#1732)\n\nThe node handed to @parameterize always wrapped the function in the\ncolumn-renaming wrapper, so reassign_columns\u003dFalse had no effect: the\noutput columns were still renamed by position, and an extracted column\ncould silently carry another column\u0027s data.\n\nBuild the node from the function chosen by reassign_columns.\n\nGenerated-by: Claude Code (Claude Opus 5.5)\n\nCo-authored-by: breken-ai \u003c312387581+breken-ai@users.noreply.github.com\u003e"
    },
    {
      "commit": "8769535e0daee2f0d65c1568e228093cd731a2a6",
      "tree": "18af177967b2e6ebb07efe75de40fb4ddbe50a1d",
      "parents": [
        "25b2367d63fe5d5f231140c84def67910bc50cc7"
      ],
      "author": {
        "name": "breken",
        "email": "support@brekfuz.com",
        "time": "Sat Sep 26 12:04:01 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 05:04:01 2026 +1000"
      },
      "message": "Fill missing columns when extract_columns gets (name, doc) tuples (#1731)\n\nextract_columns accepts columns as plain names or as (name, doc) tuples.\nThe fill_with path looped over the raw arguments, so with tuples it\nchecked `(\"b\", \"doc\") in df`, added a junk column named after the tuple,\nand never filled `b`. Requesting `b` then failed with \"No such column\".\n\nFill using the column names only, in both the sync and async generators.\n\nGenerated-by: Claude Code (Claude Opus 5.5)\n\nCo-authored-by: breken-ai \u003c312387581+breken-ai@users.noreply.github.com\u003e"
    },
    {
      "commit": "25b2367d63fe5d5f231140c84def67910bc50cc7",
      "tree": "afd0891184d01e4b050de7268307766981d423b1",
      "parents": [
        "0e6ce6b0464919cacf61f39693cccd326039127f"
      ],
      "author": {
        "name": "Shoryamishra61",
        "email": "140916461+Shoryamishra61@users.noreply.github.com",
        "time": "Sun Sep 27 00:28:24 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 04:58:24 2026 +1000"
      },
      "message": "fix(caching): avoid storing metadata and results for CachingBehavior.IGNORE nodes (#1716)\n\n* fix(caching): avoid storing metadata and results for CachingBehavior.IGNORE nodes\n\n* test(caching): assert result store contains only downstream entry for ignored nodes"
    },
    {
      "commit": "0e6ce6b0464919cacf61f39693cccd326039127f",
      "tree": "bfbb6e6ec4340a62a7c84749141fec293d9d19ac",
      "parents": [
        "4f4c48fe0163532e6258baa6e540904079c67ac6"
      ],
      "author": {
        "name": "Toyeshh Medikonda",
        "email": "toyeshhm@gmail.com",
        "time": "Sat Sep 26 13:53:15 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 04:53:15 2026 +1000"
      },
      "message": "Fix broken localhost URL in modular LLM stack example and doc typos (#1706)\n\nThe Weaviate invocation in examples/LLM_Workflows/modular_llm_stack/README.md\npointed at http://locahost:8080/, which fails to resolve when copied. The\nkedro example README referenced a noteboks/ directory that does not exist\n(the directory is notebooks/).\n\nAlso corrects spelling across READMEs, docs, and writeups (repository,\ninitialization, queries, overridden, module, pipeline, localhost, parallelism,\ndependencies, package, etc.), two doubled words, and won\u0027t/every time.\n\nCo-authored-by: Stefan Krawczyk \u003cskrawcz@apache.org\u003e"
    },
    {
      "commit": "4f4c48fe0163532e6258baa6e540904079c67ac6",
      "tree": "ccd4dee69c00df8793f899b48b8589a63a60169e",
      "parents": [
        "876b912d5d6cf477095af84af5a4697b504f7a98"
      ],
      "author": {
        "name": "Amir Fathi",
        "email": "amirfathi.me@gmail.com",
        "time": "Fri Sep 25 16:08:17 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 26 08:08:17 2026 +1000"
      },
      "message": "fix: propagate UNHASHABLE through nested containers in caching fingerprint (#1719)\n\nhash_sequence, hash_mapping, and hash_set hashed the literal \"\u003cunhashable\u003e\"\nsentinel like any other value instead of propagating it, so two objects\ndiffering only below MAX_DEPTH (or containing an unfingerprintable type)\ngot the same normal-looking hash and the caching adapter\u0027s UNHASHABLE\nguard never fired."
    },
    {
      "commit": "876b912d5d6cf477095af84af5a4697b504f7a98",
      "tree": "11daef2cf7bbd1a61990410ba7e8bf4ea9740d67",
      "parents": [
        "fa68655b11b8378aaef28e314644ceffd1f16ead"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Fri Sep 25 23:43:51 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Fri Sep 25 14:50:57 2026 -0700"
      },
      "message": "Update pyspark_stats test to avoid asserting implementation details\n"
    },
    {
      "commit": "fa68655b11b8378aaef28e314644ceffd1f16ead",
      "tree": "f14a1f056ceb9fa55db4eb0bb2ef8774f12eb03c",
      "parents": [
        "f9514da22ae9e4551de69cbfc7aca45496db142f"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Fri Sep 25 23:26:52 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Fri Sep 25 14:50:57 2026 -0700"
      },
      "message": "Ruff: fix existing violations\n"
    },
    {
      "commit": "f9514da22ae9e4551de69cbfc7aca45496db142f",
      "tree": "83d91ee5e531e2eb1775735677526225bd6f2471",
      "parents": [
        "75d37f07acbbc5ee08b6a9aab1d1b40da235df84"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Fri Sep 25 23:23:49 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Fri Sep 25 14:50:57 2026 -0700"
      },
      "message": "Ruff: inherit the main rules in ui/sdk\u0027s config\n"
    },
    {
      "commit": "75d37f07acbbc5ee08b6a9aab1d1b40da235df84",
      "tree": "4676d03b6d4d026c6303f4dc7be4dcc22913004e",
      "parents": [
        "8cfcff6327426021637564dba3473dce3a7beba3"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Fri Sep 25 23:23:18 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Fri Sep 25 14:50:57 2026 -0700"
      },
      "message": "Ruff: set default rules by removing the `extend-` prefix from rulesets\n"
    },
    {
      "commit": "8cfcff6327426021637564dba3473dce3a7beba3",
      "tree": "57e6e76144766f7247df27444fe555f77918f79c",
      "parents": [
        "feefec7853daadb052f14217916ffbcad1c91dcd"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Fri Sep 25 22:22:06 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Fri Sep 25 14:50:57 2026 -0700"
      },
      "message": "Bump Ruff to 0.16.9\n"
    },
    {
      "commit": "feefec7853daadb052f14217916ffbcad1c91dcd",
      "tree": "2d6f4e787f76d46813c2616900cab54c11e3376d",
      "parents": [
        "2206e09d49fa997d8609ebf3dff3966ab4a4de0f"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Mon Sep 21 21:53:36 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Fri Sep 25 10:23:12 2026 -0700"
      },
      "message": "Bump Ruff\n"
    },
    {
      "commit": "2206e09d49fa997d8609ebf3dff3966ab4a4de0f",
      "tree": "bfc1d89db612242e87ffe266600f4a2e884bff1b",
      "parents": [
        "661aa88802b9a53d9b1a6feb45b426f44b65ba0b"
      ],
      "author": {
        "name": "Stefan Krawczyk",
        "email": "skrawcz@apache.org",
        "time": "Fri Sep 25 10:22:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 26 03:22:25 2026 +1000"
      },
      "message": "Fix CI compatibility with current dependencies (#1723)\n\n* Fix CI compatibility with current dependencies\n\n* Clarify pandas whitespace delimiter compatibility\n\n* Address pandas compatibility review feedback"
    },
    {
      "commit": "661aa88802b9a53d9b1a6feb45b426f44b65ba0b",
      "tree": "213038a9987def3f327553cd5c1bf0c0fe0931b9",
      "parents": [
        "ed80498b1f273ff4e7ebb36f6c6f02f965b45c6c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:45:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:45:29 2026 +0100"
      },
      "message": "Bump brace-expansion in /ui/frontend (#1729)\n\nBumps  and [brace-expansion](https://github.com/juliangruber/brace-expansion). These dependencies needed to be updated together.\n\nUpdates `brace-expansion` from 1.1.15 to 1.1.21\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.15...v1.1.21)\n\nUpdates `brace-expansion` from 5.0.8 to 5.0.12\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.15...v1.1.21)\n\nUpdates `brace-expansion` from 2.1.1 to 2.1.7\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.15...v1.1.21)\n\n---\nupdated-dependencies:\n- dependency-name: brace-expansion\n  dependency-version: 1.1.21\n  dependency-type: indirect\n- dependency-name: brace-expansion\n  dependency-version: 5.0.12\n  dependency-type: indirect\n- dependency-name: brace-expansion\n  dependency-version: 2.1.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ed80498b1f273ff4e7ebb36f6c6f02f965b45c6c",
      "tree": "808aa24160a2df0eb8b6c57d0fd42464a508a46a",
      "parents": [
        "ed5b83254397fc75f90889edf34048195ff5c908"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:40:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:40:49 2026 +0100"
      },
      "message": "Bump nanoid from 3.3.16 to 3.3.19 in /ui/frontend (#1728)\n\nBumps [nanoid](https://github.com/ai/nanoid) from 3.3.16 to 3.3.19.\n- [Release notes](https://github.com/ai/nanoid/releases)\n- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ai/nanoid/compare/3.3.16...3.3.19)\n\n---\nupdated-dependencies:\n- dependency-name: nanoid\n  dependency-version: 3.3.19\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ed5b83254397fc75f90889edf34048195ff5c908",
      "tree": "12837099718f3418cdaf2b937974277747fa853a",
      "parents": [
        "012ca52d768c4e2ef5bacc117e6aa0fb42675cb9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:31:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:31:33 2026 +0100"
      },
      "message": "Bump nanoid and mocha in /dev_tools/vscode_extension (#1725)\n\nBumps [nanoid](https://github.com/ai/nanoid) to 3.3.19 and updates ancestor dependency [mocha](https://github.com/mochajs/mocha). These dependencies need to be updated together.\n\n\nUpdates `nanoid` from 3.3.16 to 3.3.19\n- [Release notes](https://github.com/ai/nanoid/releases)\n- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ai/nanoid/compare/3.3.16...3.3.19)\n\nUpdates `mocha` from 10.2.0 to 10.8.2\n- [Release notes](https://github.com/mochajs/mocha/releases)\n- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/mochajs/mocha/compare/v10.2.0...v10.8.2)\n\n---\nupdated-dependencies:\n- dependency-name: nanoid\n  dependency-version: 3.3.19\n  dependency-type: indirect\n- dependency-name: mocha\n  dependency-version: 10.8.2\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "012ca52d768c4e2ef5bacc117e6aa0fb42675cb9",
      "tree": "e9034035bd062615ab70ba5118496338c0070e21",
      "parents": [
        "f4a2cda1bf3121361ed47805665fc3a717de0de3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:30:52 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:30:52 2026 +0100"
      },
      "message": "Bump browserslist from 4.28.1 to 4.29.1 in /contrib/docs (#1726)\n\nBumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.1 to 4.29.1.\n- [Release notes](https://github.com/browserslist/browserslist/releases)\n- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/browserslist/browserslist/compare/4.28.1...4.29.1)\n\n---\nupdated-dependencies:\n- dependency-name: browserslist\n  dependency-version: 4.29.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f4a2cda1bf3121361ed47805665fc3a717de0de3",
      "tree": "3ca082ca1197e8212f72abd91cab907846cd0b70",
      "parents": [
        "91f50466376381401a44c549b2170abff588a9cd"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:28:34 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:28:34 2026 +0100"
      },
      "message": "Bump postcss-selector-parser from 6.1.2 to 6.1.4 in /ui/frontend (#1727)\n\nBumps [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser) from 6.1.2 to 6.1.4.\n- [Release notes](https://github.com/postcss/postcss-selector-parser/releases)\n- [Changelog](https://github.com/postcss/postcss-selector-parser/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss-selector-parser/compare/v6.1.2...6.1.4)\n\n---\nupdated-dependencies:\n- dependency-name: postcss-selector-parser\n  dependency-version: 6.1.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "91f50466376381401a44c549b2170abff588a9cd",
      "tree": "893408bf56c0dade907f3c81a28748493e74339d",
      "parents": [
        "0e3afd2781489486480403832f0cf7a1fa6a39ec"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:26:48 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:26:48 2026 +0100"
      },
      "message": "Bump browserslist from 4.28.1 to 4.28.8 in /dev_tools/vscode_extension (#1696)\n\nBumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.1 to 4.28.8.\n- [Release notes](https://github.com/browserslist/browserslist/releases)\n- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/browserslist/browserslist/compare/4.28.1...4.28.8)\n\n---\nupdated-dependencies:\n- dependency-name: browserslist\n  dependency-version: 4.28.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0e3afd2781489486480403832f0cf7a1fa6a39ec",
      "tree": "e0a48b6529f00fff883311f8becac742bb747ec8",
      "parents": [
        "3012b04c0020c522eb85def6815a95b4a7db83e1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:18:40 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:18:40 2026 +0100"
      },
      "message": "Bump postcss-selector-parser in /contrib/docs (#1695)\n\nBumps  and [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser). These dependencies needed to be updated together.\n\nUpdates `postcss-selector-parser` from 6.1.2 to 6.1.4\n- [Release notes](https://github.com/postcss/postcss-selector-parser/releases)\n- [Changelog](https://github.com/postcss/postcss-selector-parser/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss-selector-parser/compare/v6.1.2...6.1.4)\n\nUpdates `postcss-selector-parser` from 7.1.1 to 7.1.5\n- [Release notes](https://github.com/postcss/postcss-selector-parser/releases)\n- [Changelog](https://github.com/postcss/postcss-selector-parser/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss-selector-parser/compare/v6.1.2...6.1.4)\n\n---\nupdated-dependencies:\n- dependency-name: postcss-selector-parser\n  dependency-version: 6.1.4\n  dependency-type: indirect\n- dependency-name: postcss-selector-parser\n  dependency-version: 7.1.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3012b04c0020c522eb85def6815a95b4a7db83e1",
      "tree": "9b327993c557da01269207002bc8f4860bb89e9f",
      "parents": [
        "38b24d82bf230fd4b2e6c41014865b76f36b7589"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:17:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:17:36 2026 +0100"
      },
      "message": "build(deps-dev): bump browserslist from 4.28.1 to 4.29.1 in /ui/frontend (#1697)\n\nBumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.1 to 4.29.1.\n- [Release notes](https://github.com/browserslist/browserslist/releases)\n- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/browserslist/browserslist/compare/4.28.1...4.29.1)\n\n---\nupdated-dependencies:\n- dependency-name: browserslist\n  dependency-version: 4.28.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "38b24d82bf230fd4b2e6c41014865b76f36b7589",
      "tree": "b906c4375f8f05cd730a088c863ffa0979ec279f",
      "parents": [
        "141692355c0ad95c33ae20a1707fee5d46a25a45"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:14:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:14:50 2026 +0100"
      },
      "message": "Bump fast-uri from 3.1.4 to 3.1.7 in /dev_tools/vscode_extension (#1698)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "141692355c0ad95c33ae20a1707fee5d46a25a45",
      "tree": "39188d57e3764b861b4e47e4762f2a31acfa1342",
      "parents": [
        "7944701136679534f7f34686cdae53b833b57d26"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:10:53 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:10:53 2026 +0100"
      },
      "message": "Bump fast-uri from 3.1.5 to 3.1.7 in /contrib/docs (#1699)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7944701136679534f7f34686cdae53b833b57d26",
      "tree": "55d1bd145679a9373a8fa11d0843e3d8e5e156ab",
      "parents": [
        "41f84954da229173a15458ee2858cba969587169"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:08:11 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:08:11 2026 +0100"
      },
      "message": "Bump @humanfs/node from 0.16.7 to 0.16.8 in /ui/frontend (#1700)\n\nBumps [@humanfs/node](https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node) from 0.16.7 to 0.16.8.\n- [Release notes](https://github.com/humanwhocodes/humanfs/releases)\n- [Changelog](https://github.com/humanwhocodes/humanfs/blob/main/packages/node/CHANGELOG.md)\n- [Commits](https://github.com/humanwhocodes/humanfs/commits/node-v0.16.8/packages/node)\n\n---\nupdated-dependencies:\n- dependency-name: \"@humanfs/node\"\n  dependency-version: 0.16.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: jf \u003c50105951+jernejfrank@users.noreply.github.com\u003e"
    },
    {
      "commit": "41f84954da229173a15458ee2858cba969587169",
      "tree": "61f6df3b5bad3387e69d63eba93b24a67b93e4f5",
      "parents": [
        "9015a87d359366efaffd38f9acc077bd125b0a87"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:06:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:06:33 2026 +0100"
      },
      "message": "build(deps): bump svgo from 3.3.4 to 3.3.5 in /contrib/docs (#1708)\n\nBumps [svgo](https://github.com/svg/svgo) from 3.3.4 to 3.3.5.\n- [Release notes](https://github.com/svg/svgo/releases)\n- [Commits](https://github.com/svg/svgo/compare/v3.3.4...v3.3.5)\n\n---\nupdated-dependencies:\n- dependency-name: svgo\n  dependency-version: 3.3.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9015a87d359366efaffd38f9acc077bd125b0a87",
      "tree": "2a514d3a6e99a782ccd843f010312c8e2a19c68a",
      "parents": [
        "ba4f38042bc32f8dd645e32c790efd752ca59d03"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 10:00:41 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 10:00:41 2026 +0100"
      },
      "message": "build(deps): bump react-router-dom from 6.30.4 to 6.30.6 in /ui/frontend (#1705)\n\nBumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.30.4 to 6.30.6.\n- [Release notes](https://github.com/remix-run/react-router/releases)\n- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@6.30.6/packages/react-router-dom/CHANGELOG.md)\n- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.30.6/packages/react-router-dom)\n\n---\nupdated-dependencies:\n- dependency-name: react-router-dom\n  dependency-version: 6.30.6\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ba4f38042bc32f8dd645e32c790efd752ca59d03",
      "tree": "140fc7e75410cd0b6acbaa6c9b8a1db7eef82ff1",
      "parents": [
        "af76cb5b0068b656dcbab46b6a7ffd785d5cabd3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:45:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:45:12 2026 +0100"
      },
      "message": "Bump fflate from 0.4.8 to 0.4.9 in /ui/frontend (#1701)\n\nBumps [fflate](https://github.com/101arrowz/fflate) from 0.4.8 to 0.4.9.\n- [Release notes](https://github.com/101arrowz/fflate/releases)\n- [Changelog](https://github.com/101arrowz/fflate/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/101arrowz/fflate/commits)\n\n---\nupdated-dependencies:\n- dependency-name: fflate\n  dependency-version: 0.4.9\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "af76cb5b0068b656dcbab46b6a7ffd785d5cabd3",
      "tree": "2c6877106edd907a37f5e38bc848cf382aea5211",
      "parents": [
        "50fa38e304624604aa4d54855c00ee1c24b1202d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:43:30 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:43:30 2026 +0100"
      },
      "message": "Bump colord from 2.9.3 to 2.10.0 in /contrib/docs (#1707)\n\nBumps [colord](https://github.com/omgovich/colord) from 2.9.3 to 2.10.0.\n- [Release notes](https://github.com/omgovich/colord/releases)\n- [Changelog](https://github.com/omgovich/colord/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/omgovich/colord/commits/v2.10)\n\n---\nupdated-dependencies:\n- dependency-name: colord\n  dependency-version: 2.10.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "50fa38e304624604aa4d54855c00ee1c24b1202d",
      "tree": "1de11682c4e5f015f78b5f97398305138d7a5446",
      "parents": [
        "f0eb2cd9f843beb4e10e487cc3ffe89ac0544418"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:40:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:40:00 2026 +0100"
      },
      "message": "Bump baseline-browser-mapping from 2.10.0 to 2.11.21 in /ui/frontend (#1711)\n\nBumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.10.0 to 2.11.21.\n- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)\n- [Commits](https://github.com/web-platform-dx/baseline-browser-mapping/compare/v2.10.0...v2.11.21)\n\n---\nupdated-dependencies:\n- dependency-name: baseline-browser-mapping\n  dependency-version: 2.11.21\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: jf \u003c50105951+jernejfrank@users.noreply.github.com\u003e"
    },
    {
      "commit": "f0eb2cd9f843beb4e10e487cc3ffe89ac0544418",
      "tree": "48269b88120a4b448d14a55c57bdad1cb71d4aa9",
      "parents": [
        "68407abe680e019ef00393e463c6784a1ab561d4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:39:48 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:39:48 2026 +0100"
      },
      "message": "Bump joi from 17.13.3 to 17.13.7 in /contrib/docs (#1709)\n\nBumps [joi](https://github.com/hapijs/joi) from 17.13.3 to 17.13.7.\n- [Commits](https://github.com/hapijs/joi/compare/v17.13.3...v17.13.7)\n\n---\nupdated-dependencies:\n- dependency-name: joi\n  dependency-version: 17.13.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: jf \u003c50105951+jernejfrank@users.noreply.github.com\u003e"
    },
    {
      "commit": "68407abe680e019ef00393e463c6784a1ab561d4",
      "tree": "ca36c355df28e33978f6422e8d4972ce5512cedb",
      "parents": [
        "5ff84a6beeac1eacf0ab9405df6796ca6cd12ad0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:38:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:38:36 2026 +0100"
      },
      "message": "Bump js-yaml from 3.14.1 to 3.15.2 in /dev_tools/vscode_extension (#1710)\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.15.2.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.2/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.15.2)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 3.15.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5ff84a6beeac1eacf0ab9405df6796ca6cd12ad0",
      "tree": "a463990d5ff41231c144cbd9b3847afa19ac3b0a",
      "parents": [
        "b53e0841487d74416153b03194ada4d2cc196d22"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:36:18 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:36:18 2026 +0100"
      },
      "message": "Bump js-yaml from 3.15.1 to 3.15.2 in /contrib/docs (#1712)\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.15.1 to 3.15.2.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.2/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/3.15.1...3.15.2)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 3.15.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: jf \u003c50105951+jernejfrank@users.noreply.github.com\u003e"
    },
    {
      "commit": "b53e0841487d74416153b03194ada4d2cc196d22",
      "tree": "1a5550a6e6bb5a050d94d6b50eb05bcef192a1a8",
      "parents": [
        "45e93cef3d412cc9909112a640ebee84240fd22a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:35:42 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:35:42 2026 +0100"
      },
      "message": "build(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 in /ui/frontend (#1718)\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.3.1 to 4.3.2.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.2/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/4.3.1...4.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 4.3.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "45e93cef3d412cc9909112a640ebee84240fd22a",
      "tree": "f5a36a0eb766cbe573e80400ca576a641ff732f8",
      "parents": [
        "199ef95ce1392bf9e897fda33c52261f05a16456"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 25 09:35:17 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 09:35:17 2026 +0100"
      },
      "message": "build(deps): bump image-size from 2.0.2 to 2.0.4 in /contrib/docs (#1724)\n\nBumps [image-size](https://github.com/image-size/image-size) from 2.0.2 to 2.0.4.\n- [Release notes](https://github.com/image-size/image-size/releases)\n- [Commits](https://github.com/image-size/image-size/commits)\n\n---\nupdated-dependencies:\n- dependency-name: image-size\n  dependency-version: 2.0.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "199ef95ce1392bf9e897fda33c52261f05a16456",
      "tree": "851e757d2c6f1e558a91e667d09c93864758648c",
      "parents": [
        "df9b4be24c07851f6bbe50c570f61fc05d179c0c"
      ],
      "author": {
        "name": "jernejfrank",
        "email": "jernej@safeintelligence.ai",
        "time": "Mon Aug 17 11:25:34 2026 +0100"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Tue Sep 22 19:58:45 2026 -0700"
      },
      "message": "Fix check_output_custom uses applies_to\n"
    },
    {
      "commit": "df9b4be24c07851f6bbe50c570f61fc05d179c0c",
      "tree": "28f341c49e8b50dcb90ba79281030c6696eec6c0",
      "parents": [
        "208ac416ac0cecc94263cf6dbe400be429073b52"
      ],
      "author": {
        "name": "kasparovabi",
        "email": "104397842+kasparovabi@users.noreply.github.com",
        "time": "Thu Aug 20 13:54:16 2026 +0300"
      },
      "committer": {
        "name": "Stefan Krawczyk",
        "email": "stefan@dagworks.io",
        "time": "Tue Sep 22 19:56:27 2026 -0700"
      },
      "message": "Update retired Claude model id in the hamilton-llm skill\n\nThe Anthropic API stopped serving claude-3-5-sonnet-20241022 on 28 October\n2025. The Anthropic branch of the provider-switching example still passes\nthat id to messages.create.\n"
    },
    {
      "commit": "208ac416ac0cecc94263cf6dbe400be429073b52",
      "tree": "fd10ee4b8186d673489af21788435edc02021c87",
      "parents": [
        "76758bc89eddf24b1de38a108f8c7450330d63b8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Sep 20 12:37:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 20 12:37:34 2026 -0700"
      },
      "message": "Bump sqlparse from 0.5.5 to 0.6.0 in /ui/backend (#1689)\n\nBumps [sqlparse](https://github.com/andialbrecht/sqlparse) from 0.5.5 to 0.6.0.\n- [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG)\n- [Commits](https://github.com/andialbrecht/sqlparse/compare/0.5.5...0.6.0)\n\n---\nupdated-dependencies:\n- dependency-name: sqlparse\n  dependency-version: 0.6.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "76758bc89eddf24b1de38a108f8c7450330d63b8",
      "tree": "80b89ec7ae1ee38e67d3fcd7ee81db2d136a3d85",
      "parents": [
        "90a0c8199ce9a95b4dad3c9a24803800df37ae74"
      ],
      "author": {
        "name": "jf",
        "email": "50105951+jernejfrank@users.noreply.github.com",
        "time": "Sun Sep 20 20:36:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 20 12:36:55 2026 -0700"
      },
      "message": "fix: stop passing removed engine kwarg to plotly write_image (#1687)"
    },
    {
      "commit": "90a0c8199ce9a95b4dad3c9a24803800df37ae74",
      "tree": "d2a113e0a095f66145c293bb4e6ec33fe8128105",
      "parents": [
        "3c85a8d0e306a5e0956ef0489ba636c87d45b252"
      ],
      "author": {
        "name": "Elijah ben Izzy",
        "email": "elijahbenizzy@users.noreply.github.com",
        "time": "Sun Sep 20 12:35:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 20 12:35:14 2026 -0700"
      },
      "message": "feat: add optional module allowlist to PickleLoader deserialization (#1648)\n\n* Add optional module allowlist to PickleLoader deserialization\n\nPickleLoader has historically called pickle.load on caller-supplied bytes\nwithout restriction, mirroring pandas.read_pickle / joblib.load. That\nputs the safety burden entirely on the caller, which is brittle once\npickle files are shared across teams or produced by upstream systems.\n\nIntroduce an optional allowlist of (module, qualname) pairs, either\nper-instance via PickleLoader(allowlist\u003d...) or process-wide via\nset_pickle_loader_allowlist(...). When configured, a RestrictedUnpickler\noverrides find_class to reject anything off the allowlist, raising\nUnpicklingError before any global is resolved. When no allowlist is set,\nbehavior is unchanged for backward compatibility but a warning is now\nemitted on every load to signal the unrestricted mode.\n\nTests cover: the legacy unrestricted-with-warning path, allowlist\npermitting a legitimate roundtrip, per-instance allowlist blocking a\nmalicious __reduce__ payload, module-level allowlist applying to fresh\ninstances, and per-instance overriding the module-level default.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* style: apply ruff fixes\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "3c85a8d0e306a5e0956ef0489ba636c87d45b252",
      "tree": "9e64aff49d4e3ebcd1c3d721ff2e8590405b2973",
      "parents": [
        "d55da91947da4a8036e35c8ed452e95b01028a09"
      ],
      "author": {
        "name": "Elijah ben Izzy",
        "email": "elijahbenizzy@users.noreply.github.com",
        "time": "Sun Sep 20 12:35:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 20 12:35:11 2026 -0700"
      },
      "message": "fix(ui): enforce visibility filter on dag_runs/latest endpoint (#1646)\n\nWhen neither project_id nor dag_template_id is supplied, scope the result\nto projects the caller is a member of (directly or via a team, including\nthe \"Public\" team), matching the visibility contract already followed by\nthe other \"get\" endpoints in trackingserver_base/permissions. Adds a\nshared visible_project_ids_for_user helper and regression tests covering\nthe no-arg case, the cross-project rejection, and the legitimate\nproject_id/dag_template_id paths."
    },
    {
      "commit": "d55da91947da4a8036e35c8ed452e95b01028a09",
      "tree": "7f94d6837d20c5abdd9dad59dc0b7cbca6557676",
      "parents": [
        "a55e214b0cd6b1d44f06170698a32599ac1efe62"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Wed Aug 19 07:31:34 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 14:31:34 2026 +1000"
      },
      "message": "Switch the fingerprint algo to xxh3_128 (#1630)\n\n* Standardize fingerprint hashing on xxh3_128\n\nSwap the single `_hash_bytes` chokepoint from md5 to the\nnon-cryptographic `xxhash.xxh3_128`. xxh3_128 produces a 16-byte digest\n(24 base64url chars, identical width to the md5 it replaces), so digest\nwidth and collision resistance are preserved while throughput on\nbuffer-bound paths rises substantially.\n\nDeclare `xxhash\u003e\u003d0.8.0` as a core runtime dependency (xxh3_128 was added\nin 0.8.0); fingerprinting is imported eagerly via the caching adapter, so\nit must be a hard dependency rather than an optional extra. Add the\nxxhash BSD-2-Clause attribution to LICENSE.\n\nRecompute the portable literal-digest pins (primitives, sequences,\nmappings, sets, numpy) against xxh3_128. This is a fingerprint-changing\nrelease: prior cached fingerprints no longer match and will be recomputed.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n\n* Move xxhash to the \"performance\" extra\n\n* Remove the xxhash section from the top-level LICENCE\n\n---------\n\nCo-authored-by: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "a55e214b0cd6b1d44f06170698a32599ac1efe62",
      "tree": "ff28152b755fccae5daa547d0d9eba37106fecba",
      "parents": [
        "9d8f577da7caaa0485140bd74d83ef283185e8d7"
      ],
      "author": {
        "name": "Stefan Krawczyk",
        "email": "stefank@cs.stanford.edu",
        "time": "Thu Aug 13 01:34:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:34:35 2026 +0100"
      },
      "message": "Add tag_release.sh for final (non-RC) release tags + document step (#1663)\n\nAfter a release vote passes and the release branch is squash-merged to\nmain, the canonical release should be tagged with a clean, RC-less name\n(\u003cpackage\u003e-v\u003cversion\u003e-incubating) on the merge commit. Previously the only\ntag was the -RC tag from the RC build, which points at an off-main commit\nand makes a poor GitHub release name (flagged by ASF mentors).\n\n- scripts/tag_release.sh: create + optionally push the annotated final tag;\n  validates the package name, warns if the target commit isn\u0027t on main,\n  refuses to clobber an existing tag, and leaves the -RC tag intact.\n- scripts/README.md: add step 7 (create final release tag) to the finalize\n  sequence and list the script in the scripts table."
    },
    {
      "commit": "9d8f577da7caaa0485140bd74d83ef283185e8d7",
      "tree": "d8ef45e58857d98fdbd5f78ea3bcd671912869d7",
      "parents": [
        "87fa66b08d68977c19e3fa06d970e5c2d238a310"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:20:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:20:49 2026 +0100"
      },
      "message": "Bump ip-address from 10.2.0 to 10.4.0 in /ui/frontend (#1676)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "87fa66b08d68977c19e3fa06d970e5c2d238a310",
      "tree": "a1e29f37cc4c3bcf544101c45f880dff203b3c15",
      "parents": [
        "fe27b888930c1f0ad6defd9c3acdfba35b0dfe89"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:20:35 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:20:35 2026 +0100"
      },
      "message": "Bump aiohttp from 3.14.1 to 3.14.3 in /ui/backend (#1679)\n\nBumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.14.1 to 3.14.3.\n- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)\n- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.14.1...v3.14.3)\n\n---\nupdated-dependencies:\n- dependency-name: aiohttp\n  dependency-version: 3.14.3\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fe27b888930c1f0ad6defd9c3acdfba35b0dfe89",
      "tree": "1f5d887a81639a2d161a03d0cd03190a4722d23d",
      "parents": [
        "84f4442d39faf1f9bd736d1e0b1d5e307729a164"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:20:19 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:20:19 2026 +0100"
      },
      "message": "Bump fast-uri from 3.1.4 to 3.1.5 in /contrib/docs (#1680)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 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.4...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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "84f4442d39faf1f9bd736d1e0b1d5e307729a164",
      "tree": "685355e419728cd13d86cec489b7bcc6aa54a372",
      "parents": [
        "45b496915de8e5dded6140eadb20f9beb9e6b4db"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:20:05 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:20:05 2026 +0100"
      },
      "message": "Bump brace-expansion from 1.1.13 to 1.1.18 in /contrib/docs (#1681)\n\nBumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.13 to 1.1.18.\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.13...v1.1.18)\n\n---\nupdated-dependencies:\n- dependency-name: brace-expansion\n  dependency-version: 1.1.18\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "45b496915de8e5dded6140eadb20f9beb9e6b4db",
      "tree": "e00430cb5f53da5e49578b9ffa7178c10851ed23",
      "parents": [
        "dd89266ad703abee8583892020c78cd644531264"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:19:51 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:19:51 2026 +0100"
      },
      "message": "Bump dompurify from 3.4.12 to 3.4.13 in /ui/frontend (#1682)\n\nBumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.12 to 3.4.13.\n- [Release notes](https://github.com/cure53/DOMPurify/releases)\n- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.12...3.4.13)\n\n---\nupdated-dependencies:\n- dependency-name: dompurify\n  dependency-version: 3.4.13\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "dd89266ad703abee8583892020c78cd644531264",
      "tree": "32b0ac2a064a4d7c799827928ce245d74bea8c1f",
      "parents": [
        "c870ee86107659f0b707a741055dd45f95151101"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:19:37 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:19:37 2026 +0100"
      },
      "message": "Bump django from 5.2.15 to 5.2.16 in /ui/backend (#1683)\n\nBumps [django](https://github.com/django/django) from 5.2.15 to 5.2.16.\n- [Commits](https://github.com/django/django/compare/5.2.15...5.2.16)\n\n---\nupdated-dependencies:\n- dependency-name: django\n  dependency-version: 5.2.16\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c870ee86107659f0b707a741055dd45f95151101",
      "tree": "9a111bbc07fdc0988c1b4e6fba1de444a3e135aa",
      "parents": [
        "f2eaae86e7f67b88deab0d43930166ac730f487b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:19:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:19:23 2026 +0100"
      },
      "message": "Bump js-yaml from 3.14.2 to 3.15.1 in /contrib/docs (#1684)\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.2 to 3.15.1.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/3.15.1/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.2...3.15.1)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 3.15.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f2eaae86e7f67b88deab0d43930166ac730f487b",
      "tree": "5ee96db477c49f76678786c6325c0c6037371d7c",
      "parents": [
        "b0a2abd46ae30e6f05bafaecbb513ba19aae17a7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 13 09:19:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:19:07 2026 +0100"
      },
      "message": "Bump js-yaml from 4.3.0 to 4.3.1 in /ui/frontend (#1685)\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.3.0 to 4.3.1.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/4.3.0...4.3.1)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 4.3.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b0a2abd46ae30e6f05bafaecbb513ba19aae17a7",
      "tree": "8b24b45393718cb365b4922dd690d050b557db73",
      "parents": [
        "da58cad345f0aa1bdcfe4e6f765506fc5ed84031"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Aug 01 11:45:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 01 11:45:36 2026 -0700"
      },
      "message": "Bump vite and @vitejs/plugin-react in /ui/frontend (#1640)\n\nBumps vite from 6.4.2 to 8.0.16 and @vitejs/plugin-react from 4.7.0 to 6.0.2.\n\nVite 8\u0027s rolldown-based bundler requires rollupOptions.output.manualChunks\nto be a function rather than an object mapping chunk names to arrays of\nmodule names, so vite.config.ts\u0027s vendor chunk splitting config was\nconverted accordingly.\n\nCo-authored-by: Stefan Krawczyk \u003cskrawczyk@salesforce.com\u003e"
    },
    {
      "commit": "da58cad345f0aa1bdcfe4e6f765506fc5ed84031",
      "tree": "b5d7ace33f7f433e9e5fb2872c8d89c07a88b394",
      "parents": [
        "0d4464ffbc4c195e661df11f71d5e93148650070"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:50:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:50:28 2026 -0700"
      },
      "message": "Bump postcss from 8.5.13 to 8.5.25 in /dev_tools/vscode_extension (#1674)\n\nBumps [postcss](https://github.com/postcss/postcss) from 8.5.13 to 8.5.25.\n- [Release notes](https://github.com/postcss/postcss/releases)\n- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss/compare/8.5.13...8.5.25)\n\n---\nupdated-dependencies:\n- dependency-name: postcss\n  dependency-version: 8.5.25\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0d4464ffbc4c195e661df11f71d5e93148650070",
      "tree": "9dbca5f9aa7bc5160391e05cde7c2da6cd552e22",
      "parents": [
        "9e6594375f033ef1d4e7d7f0a7c32927483ce10f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:59 2026 -0700"
      },
      "message": "Bump fast-uri from 3.1.2 to 3.1.4 in /dev_tools/vscode_extension (#1668)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9e6594375f033ef1d4e7d7f0a7c32927483ce10f",
      "tree": "41930d6d8870d9908a113d9c8422e9d05bf9431e",
      "parents": [
        "989dda3854ee514191c9b7d67a0e5228749a7282"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:53 2026 -0700"
      },
      "message": "Bump @babel/core from 7.29.0 to 7.29.7 in /ui/frontend (#1638)\n\nBumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.29.0 to 7.29.7.\n- [Release notes](https://github.com/babel/babel/releases)\n- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-core)\n\n---\nupdated-dependencies:\n- dependency-name: \"@babel/core\"\n  dependency-version: 7.29.7\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "989dda3854ee514191c9b7d67a0e5228749a7282",
      "tree": "71b78e6659c3cab694bc28f75128b6af34cb47dc",
      "parents": [
        "867f239e23f67b836f2fd1b0b6b182dd04515b45"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:47 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:47 2026 -0700"
      },
      "message": "Bump aiohttp from 3.14.0 to 3.14.1 in /ui/backend (#1643)\n\n---\nupdated-dependencies:\n- dependency-name: aiohttp\n  dependency-version: 3.14.1\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "867f239e23f67b836f2fd1b0b6b182dd04515b45",
      "tree": "0e358e99e22cb7bf8302d47075cc8c703aa0b696",
      "parents": [
        "fa213e036f02f40b18f7a18fcd1706dd4a261a1b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:42 2026 -0700"
      },
      "message": "Bump http-proxy-middleware from 2.0.9 to 2.0.10 in /ui/frontend (#1655)\n\nBumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.9 to 2.0.10.\n- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)\n- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.10/CHANGELOG.md)\n- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.9...v2.0.10)\n\n---\nupdated-dependencies:\n- dependency-name: http-proxy-middleware\n  dependency-version: 2.0.10\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fa213e036f02f40b18f7a18fcd1706dd4a261a1b",
      "tree": "f30f9a41b8a261490a2ae4784b313e569204898a",
      "parents": [
        "224e349ede655c5d33e1b31fc2d47907f93605bb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:36 2026 -0700"
      },
      "message": "Bump django from 5.2.14 to 5.2.15 in /ui/backend (#1657)\n\nBumps [django](https://github.com/django/django) from 5.2.14 to 5.2.15.\n- [Commits](https://github.com/django/django/compare/5.2.14...5.2.15)\n\n---\nupdated-dependencies:\n- dependency-name: django\n  dependency-version: 5.2.15\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "224e349ede655c5d33e1b31fc2d47907f93605bb",
      "tree": "f89debb4c8bf78c65fdf52ea1968446250452e1b",
      "parents": [
        "7d88a1c521e93f5afcb28f443c18eb7680a71634"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:30 2026 -0700"
      },
      "message": "Bump ddtrace from 4.4.0 to 4.8.2 in /ui/backend (#1659)\n\nBumps [ddtrace](https://github.com/DataDog/dd-trace-py) from 4.4.0 to 4.8.2.\n- [Release notes](https://github.com/DataDog/dd-trace-py/releases)\n- [Changelog](https://github.com/DataDog/dd-trace-py/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/DataDog/dd-trace-py/compare/v4.4.0...v4.8.2)\n\n---\nupdated-dependencies:\n- dependency-name: ddtrace\n  dependency-version: 4.8.2\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7d88a1c521e93f5afcb28f443c18eb7680a71634",
      "tree": "cdfd0dbbb288b820fe829dd71db84186b8c41996",
      "parents": [
        "bb31053568d8fcaed5f7bec8b85680be0cbaa568"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:25 2026 -0700"
      },
      "message": "Bump js-yaml from 4.1.1 to 4.3.0 in /ui/frontend (#1660)\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.3.0.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 4.3.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "bb31053568d8fcaed5f7bec8b85680be0cbaa568",
      "tree": "8b74baf81ed5fec61a6b63b27c0c4a53e351d08c",
      "parents": [
        "7c28736104c1c47d504dde4e2f3500fe4b67ccf4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:19 2026 -0700"
      },
      "message": "Bump websocket-driver from 0.7.4 to 0.7.5 in /contrib/docs (#1661)\n\nBumps [websocket-driver](https://github.com/faye/websocket-driver-node) from 0.7.4 to 0.7.5.\n- [Changelog](https://github.com/faye/websocket-driver-node/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/faye/websocket-driver-node/compare/0.7.4...0.7.5)\n\n---\nupdated-dependencies:\n- dependency-name: websocket-driver\n  dependency-version: 0.7.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7c28736104c1c47d504dde4e2f3500fe4b67ccf4",
      "tree": "d6b26fcca4e1fe9869e8002969d1a84f3b0cba61",
      "parents": [
        "a9bcae7e221e46e961c5a829310fe84a5bda5eca"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:13 2026 -0700"
      },
      "message": "Bump svgo from 3.3.3 to 3.3.4 in /contrib/docs (#1664)\n\nBumps [svgo](https://github.com/svg/svgo) from 3.3.3 to 3.3.4.\n- [Release notes](https://github.com/svg/svgo/releases)\n- [Commits](https://github.com/svg/svgo/compare/v3.3.3...v3.3.4)\n\n---\nupdated-dependencies:\n- dependency-name: svgo\n  dependency-version: 3.3.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a9bcae7e221e46e961c5a829310fe84a5bda5eca",
      "tree": "bf39eaabefa327f24f6c545b0218eb6229fc25db",
      "parents": [
        "680f30b4451ebf65fea2f6a90627e566c9d7e3e4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jul 31 14:49:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 14:49:07 2026 -0700"
      },
      "message": "Bump dompurify from 3.4.10 to 3.4.12 in /ui/frontend (#1666)\n\nBumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.10 to 3.4.12.\n- [Release notes](https://github.com/cure53/DOMPurify/releases)\n- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.10...3.4.12)\n\n---\nupdated-dependencies:\n- dependency-name: dompurify\n  dependency-version: 3.4.12\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    }
  ],
  "next": "680f30b4451ebf65fea2f6a90627e566c9d7e3e4"
}
