headroom/plugins/opencode/package-lock.json

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

3062 lines
99 KiB
JSON
Raw Permalink Normal View History

fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
{
"name": "headroom-opencode",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "headroom-opencode",
"version": "0.1.0",
"license": "Apache-2.0",
"dependencies": {
deps: bump the npm-minor-patch group across 3 directories with 7 updates (#2276) Bumps the npm-minor-patch group with 6 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.1.0` | `15.2.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.106.0` | `0.111.0` | | [openai](https://github.com/openai/openai-node) | `6.33.0` | `6.47.0` | | [postcss](https://github.com/postcss/postcss) | `8.5.16` | `8.5.19` | Bumps the npm-minor-patch group with 1 update in the /plugins/opencode directory: @opencode-ai/plugin. Bumps the npm-minor-patch group with 1 update in the /sdk/typescript directory: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript). Updates `fumadocs-core` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.1.0 to 15.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.2.0</h2> <h3>Support Macro API</h3> <p>Use <code>fumadocs-mdx/macro</code> to define collections, and enable the macro-style API from bundler plugin (e.g. <code>createMDX</code>) using the <code>include</code> option.</p> <h2>fumadocs-mdx@15.1.1</h2> <h3>Migrate from <code>js-yaml</code> to <code>yaml</code></h3> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.1.0...fumadocs-mdx@15.2.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `@anthropic-ai/sdk` from 0.106.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Updates `openai` from 6.33.0 to 6.47.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/releases">openai's releases</a>.</em></p> <blockquote> <h2>v6.47.0</h2> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>v6.46.0</h2> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/blob/main/CHANGELOG.md">openai's changelog</a>.</em></p> <blockquote> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <h2>6.45.0 (2026-06-24)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/openai/openai-node/commit/62554053803dea45bf949699c7ea9d1a414df615"><code>6255405</code></a> release: 6.47.0 (<a href="https://redirect.github.com/openai/openai-node/issues/1989">#1989</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4"><code>1cdc019</code></a> fix(assistants): preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ec2f57fd0d66e94782656b986d7b3eb03225369c"><code>ec2f57f</code></a> Preserve snapshots when resuming response streams (<a href="https://redirect.github.com/openai/openai-node/issues/1984">#1984</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a"><code>2df10fc</code></a> fix(zod): support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ebb649811d9bd51a438aae26aa57bcb873cba3a6"><code>ebb6498</code></a> Fix runTools readable stream round trip tool results (<a href="https://redirect.github.com/openai/openai-node/issues/1986">#1986</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a"><code>5984f44</code></a> feat: add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959"><code>373b08a</code></a> docs: clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9"><code>a6f01e5</code></a> feat: pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/53e580efb620b54f52cc5b5b1d39fb567b8bd3c3"><code>53e580e</code></a> test: serialize Steady-backed Jest runs (<a href="https://redirect.github.com/openai/openai-node/issues/1976">#1976</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d"><code>a86f1fd</code></a> feat: support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>)</li> <li>Additional commits viewable in <a href="https://github.com/openai/openai-node/compare/v6.33.0...v6.47.0">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.16 to 8.5.19 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/9543b22769bef5bcd47600fbca752204c106cda8"><code>9543b22</code></a> Release 8.5.19 version</li> <li><a href="https://github.com/postcss/postcss/commit/3d13bf9360652922de0535f6257e1648187363f0"><code>3d13bf9</code></a> Fix CI on Windows too</li> <li><a href="https://github.com/postcss/postcss/commit/00d0dd2322162f6083d507ea6954685e1c92f165"><code>00d0dd2</code></a> Keep explicitly set raws.before when inserting nodes into root (<a href="https://redirect.github.com/postcss/postcss/issues/2111">#2111</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/7a05b33e7a15d6f80d90098784170ad3dca39180"><code>7a05b33</code></a> Temporary fix CI</li> <li><a href="https://github.com/postcss/postcss/commit/4c0d194c136fd374495d0993c890d794cab65b81"><code>4c0d194</code></a> Release 8.5.18 version</li> <li><a href="https://github.com/postcss/postcss/commit/92b4e7891ec7b811821d01acc8aa0f010caf41e2"><code>92b4e78</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/95663d3eb7ba26f4854dd19d3b4f4425760cf56c"><code>95663d3</code></a> Limit where source map can be loaded for security reasons</li> <li><a href="https://github.com/postcss/postcss/commit/74e25ae9f4efaa56a41a449064a655d7da78072c"><code>74e25ae</code></a> Release 8.5.17 version</li> <li><a href="https://github.com/postcss/postcss/commit/d1518afd5a88f42728b30b87f8917210f363f9f1"><code>d1518af</code></a> Fix Maximum call stack size exceeded error</li> <li><a href="https://github.com/postcss/postcss/commit/2421312ffea96ba77b35ce24a1b2d9c2e22b5e83"><code>2421312</code></a> Fix linter</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.16...8.5.19">compare view</a></li> </ul> </details> <br /> Updates `@opencode-ai/plugin` from 1.17.16 to 1.18.2 Updates `@anthropic-ai/sdk` from 0.110.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 11:21:14 -05:00
"@opencode-ai/plugin": "^1.18.2",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"headroom-ai": "^0.22.3"
},
"devDependencies": {
"@types/node": "^26.1.1",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"tsup": "^8.0.0",
"typescript": "^5.5.0",
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"vitest": "^4.1.10"
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
},
"peerDependencies": {
"@ai-sdk/openai-compatible": "*",
"@ai-sdk/provider": "*",
"ai": "*"
},
"peerDependenciesMeta": {
"@ai-sdk/openai-compatible": {
"optional": true
},
"@ai-sdk/provider": {
"optional": true
},
"ai": {
"optional": true
}
}
},
"node_modules/@ai-sdk/provider": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.8.tgz",
"integrity": "sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==",
"license": "Apache-2.0",
"dependencies": {
"json-schema": "^0.4.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@emnapi/core": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
"integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/wasi-threads": "1.2.2",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
"integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/wasi-threads": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
"integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@esbuild/aix-ppc64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz",
"integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz",
"integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz",
"integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz",
"integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz",
"integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz",
"integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz",
"integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz",
"integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz",
"integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz",
"integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz",
"integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz",
"integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz",
"integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"mips64el"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz",
"integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz",
"integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz",
"integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz",
"integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz",
"integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz",
"integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz",
"integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz",
"integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openharmony-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz",
"integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz",
"integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz",
"integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz",
"integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz",
"integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
"integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/trace-mapping": "^0.3.24"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.31",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
"integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz",
"integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz",
"integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz",
"integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz",
"integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz",
"integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz",
"integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
"integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@tybys/wasm-util": "^0.10.3"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
},
"peerDependencies": {
"@emnapi/core": "^1.7.1",
"@emnapi/runtime": "^1.7.1"
}
},
"node_modules/@opencode-ai/plugin": {
deps: bump the npm-minor-patch group across 3 directories with 7 updates (#2276) Bumps the npm-minor-patch group with 6 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.1.0` | `15.2.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.106.0` | `0.111.0` | | [openai](https://github.com/openai/openai-node) | `6.33.0` | `6.47.0` | | [postcss](https://github.com/postcss/postcss) | `8.5.16` | `8.5.19` | Bumps the npm-minor-patch group with 1 update in the /plugins/opencode directory: @opencode-ai/plugin. Bumps the npm-minor-patch group with 1 update in the /sdk/typescript directory: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript). Updates `fumadocs-core` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.1.0 to 15.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.2.0</h2> <h3>Support Macro API</h3> <p>Use <code>fumadocs-mdx/macro</code> to define collections, and enable the macro-style API from bundler plugin (e.g. <code>createMDX</code>) using the <code>include</code> option.</p> <h2>fumadocs-mdx@15.1.1</h2> <h3>Migrate from <code>js-yaml</code> to <code>yaml</code></h3> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.1.0...fumadocs-mdx@15.2.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `@anthropic-ai/sdk` from 0.106.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Updates `openai` from 6.33.0 to 6.47.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/releases">openai's releases</a>.</em></p> <blockquote> <h2>v6.47.0</h2> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>v6.46.0</h2> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/blob/main/CHANGELOG.md">openai's changelog</a>.</em></p> <blockquote> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <h2>6.45.0 (2026-06-24)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/openai/openai-node/commit/62554053803dea45bf949699c7ea9d1a414df615"><code>6255405</code></a> release: 6.47.0 (<a href="https://redirect.github.com/openai/openai-node/issues/1989">#1989</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4"><code>1cdc019</code></a> fix(assistants): preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ec2f57fd0d66e94782656b986d7b3eb03225369c"><code>ec2f57f</code></a> Preserve snapshots when resuming response streams (<a href="https://redirect.github.com/openai/openai-node/issues/1984">#1984</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a"><code>2df10fc</code></a> fix(zod): support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ebb649811d9bd51a438aae26aa57bcb873cba3a6"><code>ebb6498</code></a> Fix runTools readable stream round trip tool results (<a href="https://redirect.github.com/openai/openai-node/issues/1986">#1986</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a"><code>5984f44</code></a> feat: add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959"><code>373b08a</code></a> docs: clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9"><code>a6f01e5</code></a> feat: pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/53e580efb620b54f52cc5b5b1d39fb567b8bd3c3"><code>53e580e</code></a> test: serialize Steady-backed Jest runs (<a href="https://redirect.github.com/openai/openai-node/issues/1976">#1976</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d"><code>a86f1fd</code></a> feat: support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>)</li> <li>Additional commits viewable in <a href="https://github.com/openai/openai-node/compare/v6.33.0...v6.47.0">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.16 to 8.5.19 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/9543b22769bef5bcd47600fbca752204c106cda8"><code>9543b22</code></a> Release 8.5.19 version</li> <li><a href="https://github.com/postcss/postcss/commit/3d13bf9360652922de0535f6257e1648187363f0"><code>3d13bf9</code></a> Fix CI on Windows too</li> <li><a href="https://github.com/postcss/postcss/commit/00d0dd2322162f6083d507ea6954685e1c92f165"><code>00d0dd2</code></a> Keep explicitly set raws.before when inserting nodes into root (<a href="https://redirect.github.com/postcss/postcss/issues/2111">#2111</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/7a05b33e7a15d6f80d90098784170ad3dca39180"><code>7a05b33</code></a> Temporary fix CI</li> <li><a href="https://github.com/postcss/postcss/commit/4c0d194c136fd374495d0993c890d794cab65b81"><code>4c0d194</code></a> Release 8.5.18 version</li> <li><a href="https://github.com/postcss/postcss/commit/92b4e7891ec7b811821d01acc8aa0f010caf41e2"><code>92b4e78</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/95663d3eb7ba26f4854dd19d3b4f4425760cf56c"><code>95663d3</code></a> Limit where source map can be loaded for security reasons</li> <li><a href="https://github.com/postcss/postcss/commit/74e25ae9f4efaa56a41a449064a655d7da78072c"><code>74e25ae</code></a> Release 8.5.17 version</li> <li><a href="https://github.com/postcss/postcss/commit/d1518afd5a88f42728b30b87f8917210f363f9f1"><code>d1518af</code></a> Fix Maximum call stack size exceeded error</li> <li><a href="https://github.com/postcss/postcss/commit/2421312ffea96ba77b35ce24a1b2d9c2e22b5e83"><code>2421312</code></a> Fix linter</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.16...8.5.19">compare view</a></li> </ul> </details> <br /> Updates `@opencode-ai/plugin` from 1.17.16 to 1.18.2 Updates `@anthropic-ai/sdk` from 0.110.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 11:21:14 -05:00
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.18.2.tgz",
"integrity": "sha512-h0N1mShfSfaI0pMHXCAdEevF5fVZ+u+F8B4/PDEurpFIk7n/mSjYkgjVvekIR3Z4SJkApkVlwekctIPO7JhLvg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"license": "MIT",
"dependencies": {
"@ai-sdk/provider": "3.0.8",
deps: bump the npm-minor-patch group across 3 directories with 7 updates (#2276) Bumps the npm-minor-patch group with 6 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.1.0` | `15.2.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.106.0` | `0.111.0` | | [openai](https://github.com/openai/openai-node) | `6.33.0` | `6.47.0` | | [postcss](https://github.com/postcss/postcss) | `8.5.16` | `8.5.19` | Bumps the npm-minor-patch group with 1 update in the /plugins/opencode directory: @opencode-ai/plugin. Bumps the npm-minor-patch group with 1 update in the /sdk/typescript directory: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript). Updates `fumadocs-core` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.1.0 to 15.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.2.0</h2> <h3>Support Macro API</h3> <p>Use <code>fumadocs-mdx/macro</code> to define collections, and enable the macro-style API from bundler plugin (e.g. <code>createMDX</code>) using the <code>include</code> option.</p> <h2>fumadocs-mdx@15.1.1</h2> <h3>Migrate from <code>js-yaml</code> to <code>yaml</code></h3> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.1.0...fumadocs-mdx@15.2.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `@anthropic-ai/sdk` from 0.106.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Updates `openai` from 6.33.0 to 6.47.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/releases">openai's releases</a>.</em></p> <blockquote> <h2>v6.47.0</h2> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>v6.46.0</h2> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/blob/main/CHANGELOG.md">openai's changelog</a>.</em></p> <blockquote> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <h2>6.45.0 (2026-06-24)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/openai/openai-node/commit/62554053803dea45bf949699c7ea9d1a414df615"><code>6255405</code></a> release: 6.47.0 (<a href="https://redirect.github.com/openai/openai-node/issues/1989">#1989</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4"><code>1cdc019</code></a> fix(assistants): preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ec2f57fd0d66e94782656b986d7b3eb03225369c"><code>ec2f57f</code></a> Preserve snapshots when resuming response streams (<a href="https://redirect.github.com/openai/openai-node/issues/1984">#1984</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a"><code>2df10fc</code></a> fix(zod): support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ebb649811d9bd51a438aae26aa57bcb873cba3a6"><code>ebb6498</code></a> Fix runTools readable stream round trip tool results (<a href="https://redirect.github.com/openai/openai-node/issues/1986">#1986</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a"><code>5984f44</code></a> feat: add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959"><code>373b08a</code></a> docs: clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9"><code>a6f01e5</code></a> feat: pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/53e580efb620b54f52cc5b5b1d39fb567b8bd3c3"><code>53e580e</code></a> test: serialize Steady-backed Jest runs (<a href="https://redirect.github.com/openai/openai-node/issues/1976">#1976</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d"><code>a86f1fd</code></a> feat: support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>)</li> <li>Additional commits viewable in <a href="https://github.com/openai/openai-node/compare/v6.33.0...v6.47.0">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.16 to 8.5.19 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/9543b22769bef5bcd47600fbca752204c106cda8"><code>9543b22</code></a> Release 8.5.19 version</li> <li><a href="https://github.com/postcss/postcss/commit/3d13bf9360652922de0535f6257e1648187363f0"><code>3d13bf9</code></a> Fix CI on Windows too</li> <li><a href="https://github.com/postcss/postcss/commit/00d0dd2322162f6083d507ea6954685e1c92f165"><code>00d0dd2</code></a> Keep explicitly set raws.before when inserting nodes into root (<a href="https://redirect.github.com/postcss/postcss/issues/2111">#2111</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/7a05b33e7a15d6f80d90098784170ad3dca39180"><code>7a05b33</code></a> Temporary fix CI</li> <li><a href="https://github.com/postcss/postcss/commit/4c0d194c136fd374495d0993c890d794cab65b81"><code>4c0d194</code></a> Release 8.5.18 version</li> <li><a href="https://github.com/postcss/postcss/commit/92b4e7891ec7b811821d01acc8aa0f010caf41e2"><code>92b4e78</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/95663d3eb7ba26f4854dd19d3b4f4425760cf56c"><code>95663d3</code></a> Limit where source map can be loaded for security reasons</li> <li><a href="https://github.com/postcss/postcss/commit/74e25ae9f4efaa56a41a449064a655d7da78072c"><code>74e25ae</code></a> Release 8.5.17 version</li> <li><a href="https://github.com/postcss/postcss/commit/d1518afd5a88f42728b30b87f8917210f363f9f1"><code>d1518af</code></a> Fix Maximum call stack size exceeded error</li> <li><a href="https://github.com/postcss/postcss/commit/2421312ffea96ba77b35ce24a1b2d9c2e22b5e83"><code>2421312</code></a> Fix linter</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.16...8.5.19">compare view</a></li> </ul> </details> <br /> Updates `@opencode-ai/plugin` from 1.17.16 to 1.18.2 Updates `@anthropic-ai/sdk` from 0.110.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 11:21:14 -05:00
"@opencode-ai/sdk": "1.18.2",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"effect": "4.0.0-beta.83",
"zod": "4.1.8"
},
"peerDependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@opentui/core": ">=0.4.3",
"@opentui/keymap": ">=0.4.3",
"@opentui/solid": ">=0.4.3"
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
},
"peerDependenciesMeta": {
"@opentui/core": {
"optional": true
},
"@opentui/keymap": {
"optional": true
},
"@opentui/solid": {
"optional": true
}
}
},
"node_modules/@opencode-ai/sdk": {
deps: bump the npm-minor-patch group across 3 directories with 7 updates (#2276) Bumps the npm-minor-patch group with 6 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.1.0` | `15.2.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.11.1` | `16.11.5` | | [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.106.0` | `0.111.0` | | [openai](https://github.com/openai/openai-node) | `6.33.0` | `6.47.0` | | [postcss](https://github.com/postcss/postcss) | `8.5.16` | `8.5.19` | Bumps the npm-minor-patch group with 1 update in the /plugins/opencode directory: @opencode-ai/plugin. Bumps the npm-minor-patch group with 1 update in the /sdk/typescript directory: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript). Updates `fumadocs-core` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.1.0 to 15.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.2.0</h2> <h3>Support Macro API</h3> <p>Use <code>fumadocs-mdx/macro</code> to define collections, and enable the macro-style API from bundler plugin (e.g. <code>createMDX</code>) using the <code>include</code> option.</p> <h2>fumadocs-mdx@15.1.1</h2> <h3>Migrate from <code>js-yaml</code> to <code>yaml</code></h3> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.1.0...fumadocs-mdx@15.2.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.11.1 to 16.11.5 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/52af6cf292efe62c5d547dea1affdcdd4e92e988"><code>52af6cf</code></a> Merge pull request <a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3416">#3416</a> from fuma-nama/tegami/version-packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/efc9d18402ae038675bf9eda5526f0e96a0c0cad"><code>efc9d18</code></a> chore(mdx): bake passthroughs into runtime module</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/368a92e3a26bf2a945f4af8d789c617d577bcfb1"><code>368a92e</code></a> feat(mdx): macro collection-level last modified time</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/13dfdbc224421f8348af34e8f60a214d2572ab0d"><code>13dfdbc</code></a> feat(mdx): no longer require include for macros</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/63623320b52c4b4412d7be2b650098b7c2ecf8fb"><code>6362332</code></a> test macro API on vite</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/126a74d9950066757f5ca0f6e131e7dce8475e93"><code>126a74d</code></a> fix(ui): fix accessibility of sidebar components</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/430254caaba508ef3f5961b665b7f36ed5d2b095"><code>430254c</code></a> fix(mdx): fix file check</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/1862822aa5daeaab1115a12fd0b5ac86e797b415"><code>1862822</code></a> feat(mdx): redesign macro infrastructure</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d3710a9614bf04321942e8b3cdbd0a451fa8a780"><code>d3710a9</code></a> fix(openapi): fix invalid generated request</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ba78b0177b9e59c7f29497776d2949cf17320abb"><code>ba78b01</code></a> fix(ui): correct prop types</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.11.1...fumadocs@16.11.5">compare view</a></li> </ul> </details> <br /> Updates `@anthropic-ai/sdk` from 0.106.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Updates `openai` from 6.33.0 to 6.47.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/releases">openai's releases</a>.</em></p> <blockquote> <h2>v6.47.0</h2> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>v6.46.0</h2> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-node/blob/main/CHANGELOG.md">openai's changelog</a>.</em></p> <blockquote> <h2>6.47.0 (2026-07-14)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.46.0...v6.47.0">v6.46.0...v6.47.0</a></p> <h3>Features</h3> <ul> <li>add async event iterators (<a href="https://redirect.github.com/openai/openai-node/issues/1977">#1977</a>) (<a href="https://github.com/openai/openai-node/commit/2ece8aa848c6e90d68df636cfff1e3fde2075d8f">2ece8aa</a>)</li> <li>add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>) (<a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a">5984f44</a>)</li> <li><strong>api:</strong> add owner_project_access to APIKeyListParams (<a href="https://github.com/openai/openai-node/commit/7bfce973a114e04471796e375faf0b62229c71c1">7bfce97</a>)</li> <li>pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>) (<a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9">a6f01e5</a>)</li> <li>support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>) (<a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d">a86f1fd</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>) (<a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4">1cdc019</a>)</li> <li>avoid deep Deno Zod types (<a href="https://redirect.github.com/openai/openai-node/issues/1980">#1980</a>) (<a href="https://github.com/openai/openai-node/commit/ae17127eff0160ce1af7bcb2cc456a4275272a14">ae17127</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/984">#984</a></li> <li><strong>ci:</strong> bump <code>@​arethetypeswrong/cli</code> to ^0.18.0 and run CI workflows on Node 24 (<a href="https://github.com/openai/openai-node/commit/baa0b2ad9006e879f28abe45999ef0901eabeea9">baa0b2a</a>)</li> <li>emit stream finalization errors (<a href="https://redirect.github.com/openai/openai-node/issues/1972">#1972</a>) (<a href="https://github.com/openai/openai-node/commit/9555b71ab8300cad057dd7699b75ae80e3967573">9555b71</a>)</li> <li>handle Azure filter stream chunks (<a href="https://redirect.github.com/openai/openai-node/issues/1982">#1982</a>) (<a href="https://github.com/openai/openai-node/commit/c1c5c28267ec36f6afef55e1dfe6eabeda22c2ee">c1c5c28</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1015">#1015</a></li> <li><strong>zod:</strong> support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>) (<a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a">2df10fc</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>) (<a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959">373b08a</a>)</li> </ul> <h2>6.46.0 (2026-07-09)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-node/compare/v6.45.0...v6.46.0">v6.45.0...v6.46.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> gpt-5.6-sol updates (<a href="https://github.com/openai/openai-node/commit/6c397d5d281d6061e88b4a0120fab335ec862a89">6c397d5</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>assistants:</strong> place array delta entries by index instead of appending (<a href="https://redirect.github.com/openai/openai-node/issues/1963">#1963</a>) (<a href="https://github.com/openai/openai-node/commit/0e18d30a31595acf0fd5e03b8e6bbf8bf31d15d1">0e18d30</a>)</li> <li><strong>runner:</strong> normalize missing tool call IDs (<a href="https://redirect.github.com/openai/openai-node/issues/1958">#1958</a>) (<a href="https://github.com/openai/openai-node/commit/6371623aadd26ec34a0edecba62a0a10c834b37d">6371623</a>)</li> <li>upgrade next to 15.5.16 in examples (<a href="https://redirect.github.com/openai/openai-node/issues/1967">#1967</a>) (<a href="https://github.com/openai/openai-node/commit/95b54e5894910e31d01ef418ef0de31e9d653b08">95b54e5</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>add Azure Assistants example (<a href="https://redirect.github.com/openai/openai-node/issues/1975">#1975</a>) (<a href="https://github.com/openai/openai-node/commit/90a72e53452fca62e0c1da42c304eba87d8e87e7">90a72e5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/701">#701</a></li> <li>document assistant stream failures (<a href="https://redirect.github.com/openai/openai-node/issues/1979">#1979</a>) (<a href="https://github.com/openai/openai-node/commit/d93fbe5bc5a7879ff4a2b81f3840614da6df594e">d93fbe5</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/959">#959</a></li> <li>document file search result limits (<a href="https://redirect.github.com/openai/openai-node/issues/1981">#1981</a>) (<a href="https://github.com/openai/openai-node/commit/e9dc283dce5a75c569c1aa418f973da69cf7eaae">e9dc283</a>), closes <a href="https://redirect.github.com/openai/openai-node/issues/1004">#1004</a></li> </ul> <h2>6.45.0 (2026-06-24)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/openai/openai-node/commit/62554053803dea45bf949699c7ea9d1a414df615"><code>6255405</code></a> release: 6.47.0 (<a href="https://redirect.github.com/openai/openai-node/issues/1989">#1989</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/1cdc0196b4341ee641ec6839e08744b2771250e4"><code>1cdc019</code></a> fix(assistants): preserve readable stream deltas (<a href="https://redirect.github.com/openai/openai-node/issues/1994">#1994</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ec2f57fd0d66e94782656b986d7b3eb03225369c"><code>ec2f57f</code></a> Preserve snapshots when resuming response streams (<a href="https://redirect.github.com/openai/openai-node/issues/1984">#1984</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/2df10fc19add2cf78aff96c5e4dceac271dab33a"><code>2df10fc</code></a> fix(zod): support zod v4 mini schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1985">#1985</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/ebb649811d9bd51a438aae26aa57bcb873cba3a6"><code>ebb6498</code></a> Fix runTools readable stream round trip tool results (<a href="https://redirect.github.com/openai/openai-node/issues/1986">#1986</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/5984f442e0cdb5151ccf29562362131c98a3615a"><code>5984f44</code></a> feat: add fromReadableStream to ResponseStream (<a href="https://redirect.github.com/openai/openai-node/issues/1987">#1987</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/373b08ac3b7127392f1607fc8e82001e4776b959"><code>373b08a</code></a> docs: clarify strict Zod function schemas (<a href="https://redirect.github.com/openai/openai-node/issues/1988">#1988</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a6f01e53de019e71a3a21f6097c38c9c674005c9"><code>a6f01e5</code></a> feat: pass context to runTools callbacks (<a href="https://redirect.github.com/openai/openai-node/issues/1973">#1973</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/53e580efb620b54f52cc5b5b1d39fb567b8bd3c3"><code>53e580e</code></a> test: serialize Steady-backed Jest runs (<a href="https://redirect.github.com/openai/openai-node/issues/1976">#1976</a>)</li> <li><a href="https://github.com/openai/openai-node/commit/a86f1fde303df05ce6c5e4130bb07add3de89b7d"><code>a86f1fd</code></a> feat: support streaming file uploads (<a href="https://redirect.github.com/openai/openai-node/issues/1970">#1970</a>)</li> <li>Additional commits viewable in <a href="https://github.com/openai/openai-node/compare/v6.33.0...v6.47.0">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.16 to 8.5.19 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.19</h2> <ul> <li>Fixed cleaning <code>before</code> for new nodes inserted to <code>Root</code> (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> <h2>8.5.18</h2> <ul> <li>Restricted loading previous source maps file to the <code>opts.from</code> folder for security reasons (use <code>unsafeMap: true</code> to disable the check).</li> </ul> <h2>8.5.17</h2> <ul> <li>Fixed <code>Maximum call stack size exceeded</code> error.</li> <li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li> <li>Fixed <code>Input#origin()</code> for unmapped end position (by <a href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/9543b22769bef5bcd47600fbca752204c106cda8"><code>9543b22</code></a> Release 8.5.19 version</li> <li><a href="https://github.com/postcss/postcss/commit/3d13bf9360652922de0535f6257e1648187363f0"><code>3d13bf9</code></a> Fix CI on Windows too</li> <li><a href="https://github.com/postcss/postcss/commit/00d0dd2322162f6083d507ea6954685e1c92f165"><code>00d0dd2</code></a> Keep explicitly set raws.before when inserting nodes into root (<a href="https://redirect.github.com/postcss/postcss/issues/2111">#2111</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/7a05b33e7a15d6f80d90098784170ad3dca39180"><code>7a05b33</code></a> Temporary fix CI</li> <li><a href="https://github.com/postcss/postcss/commit/4c0d194c136fd374495d0993c890d794cab65b81"><code>4c0d194</code></a> Release 8.5.18 version</li> <li><a href="https://github.com/postcss/postcss/commit/92b4e7891ec7b811821d01acc8aa0f010caf41e2"><code>92b4e78</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/95663d3eb7ba26f4854dd19d3b4f4425760cf56c"><code>95663d3</code></a> Limit where source map can be loaded for security reasons</li> <li><a href="https://github.com/postcss/postcss/commit/74e25ae9f4efaa56a41a449064a655d7da78072c"><code>74e25ae</code></a> Release 8.5.17 version</li> <li><a href="https://github.com/postcss/postcss/commit/d1518afd5a88f42728b30b87f8917210f363f9f1"><code>d1518af</code></a> Fix Maximum call stack size exceeded error</li> <li><a href="https://github.com/postcss/postcss/commit/2421312ffea96ba77b35ce24a1b2d9c2e22b5e83"><code>2421312</code></a> Fix linter</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.16...8.5.19">compare view</a></li> </ul> </details> <br /> Updates `@opencode-ai/plugin` from 1.17.16 to 1.18.2 Updates `@anthropic-ai/sdk` from 0.110.0 to 0.111.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/releases">@​anthropic-ai/sdk's releases</a>.</em></p> <blockquote> <h2>sdk: v0.111.0</h2> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>sdk: v0.110.0</h2> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>sdk: v0.109.1</h2> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>sdk: v0.109.0</h2> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>sdk: v0.108.0</h2> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md">@​anthropic-ai/sdk's changelog</a>.</em></p> <blockquote> <h2>0.111.0 (2026-07-10)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.110.0...sdk-v0.111.0">sdk-v0.110.0...sdk-v0.111.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for dreaming (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/77b28a647239fd66d3a31b04fca4a58ebc86e493">77b28a6</a>)</li> <li><strong>tools:</strong> gate session tool calls on evaluated_permission; bound idle by server stop_reason (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/68a6d7b92aaea4d3eaf3a7567db18e3bf6d695ef">68a6d7b</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>docs:</strong> small updates to field descriptions (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/e25b885eacbf26332e6133abff2ea7d72fef2b30">e25b885</a>)</li> <li><strong>docs:</strong> update model example (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a33f3f0b7cee244f2dc894900e9fa07cf686228b">a33f3f0</a>)</li> <li><strong>docs:</strong> updates to descriptions and examples (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/eac4bace325ae901465edf7a503183f669c3c2d8">eac4bac</a>)</li> </ul> <h2>0.110.0 (2026-07-02)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.1...sdk-v0.110.0">sdk-v0.109.1...sdk-v0.110.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add agent-memory-2026-07-22 beta header (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/a470e10aaad12078e3e5f2bb9adf6c2652ea9ca0">a470e10</a>)</li> </ul> <h2>0.109.1 (2026-07-01)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.109.0...sdk-v0.109.1">sdk-v0.109.0...sdk-v0.109.1</a></p> <h3>Chores</h3> <ul> <li><strong>api:</strong> remove some nonfunctional types from the SDKs (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/cc4dd4e257cc3354f14e263b0d2441ddae71759e">cc4dd4e</a>)</li> </ul> <h2>0.109.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.108.0...sdk-v0.109.0">sdk-v0.108.0...sdk-v0.109.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for Managed Agents event delta streaming, agent overrides, reverse pagination, vault credential injection scoping, and agent and deployment webhook events (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/7f3211b4886053d25e98b91edc90fedc199ef186">7f3211b</a>)</li> </ul> <h2>0.108.0 (2026-06-30)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.107.0...sdk-v0.108.0">sdk-v0.107.0...sdk-v0.108.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add support for claude-sonnet-5 (<a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4588db01eccd7529a5d2e99b8e5da3af1acdbbc8">4588db0</a>)</li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9e46760688a2af71b50581a301b2819d29d28c66"><code>9e46760</code></a> chore: release main</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/8d461ea96237231f33bf7db33d784e161f702f31"><code>8d461ea</code></a> feat(api): add support for dreaming</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/9436e29159cd74aadd58259ed7a0e27de8443f18"><code>9436e29</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/0aec1e748b681400942a86c2d5ab5e8d1d96082e"><code>0aec1e7</code></a> feat(tools): gate session tool calls on evaluated_permission; bound idle by s...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/ac2fc6779d9ad533b9c2b12d8728c5afac9bb0b1"><code>ac2fc67</code></a> chore(docs): update model example</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/c8af65d6af64af317139632227ab398920f21a7e"><code>c8af65d</code></a> chore(docs): updates to descriptions and examples</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/2a3a9042ab4fa1ec6de693cb04368ef3752b16d3"><code>2a3a904</code></a> codegen metadata</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/57c56c917287f42fc034f7037c4773f50579d74a"><code>57c56c9</code></a> chore(docs): small updates to field descriptions</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/4f2eb8071993780d79610b9eda26db96f7653843"><code>4f2eb80</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1107">#1107</a>)</li> <li><a href="https://github.com/anthropics/anthropic-sdk-typescript/commit/96d1a991b64b1692b70d16435babe9c5d702ad8d"><code>96d1a99</code></a> chore: release main (<a href="https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1106">#1106</a>)</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.106.0...sdk-v0.111.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 11:21:14 -05:00
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.18.2.tgz",
"integrity": "sha512-40DIMMrl2W0TMFKtTnrYKed3ElXhqEkP0oLahQEd6Mm9mTdu/B2Bc9A19++IkKKFIxbxKFaUhik+vBUiNBrFtA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"license": "MIT",
"dependencies": {
"cross-spawn": "7.0.6"
}
},
"node_modules/@oxc-project/types": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "0.139.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz",
"integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Boshen"
}
},
"node_modules/@rolldown/binding-android-arm64": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz",
"integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-darwin-arm64": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz",
"integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-darwin-x64": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz",
"integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-freebsd-x64": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz",
"integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz",
"integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm64-gnu": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz",
"integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm64-musl": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz",
"integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz",
"integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-s390x-gnu": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz",
"integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-x64-gnu": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz",
"integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-x64-musl": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz",
"integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-openharmony-arm64": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz",
"integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-wasm32-wasi": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz",
"integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"wasm32"
],
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/core": "1.11.1",
"@emnapi/runtime": "1.11.1",
"@napi-rs/wasm-runtime": "^1.1.6"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-win32-arm64-msvc": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz",
"integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-win32-x64-msvc": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz",
"integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/pluginutils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
"integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
"dev": true,
"license": "MIT"
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz",
"integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz",
"integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz",
"integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz",
"integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz",
"integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz",
"integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz",
"integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz",
"integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz",
"integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz",
"integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz",
"integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-loong64-musl": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz",
"integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz",
"integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz",
"integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz",
"integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz",
"integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz",
"integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==",
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz",
"integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz",
"integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-openbsd-x64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz",
"integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
]
},
"node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz",
"integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz",
"integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz",
"integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz",
"integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz",
"integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@standard-schema/spec": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
"integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
"license": "MIT"
},
"node_modules/@tybys/wasm-util": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
"integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@types/chai": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
"integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/deep-eql": "*",
"assertion-error": "^2.0.1"
}
},
"node_modules/@types/deep-eql": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
"integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/estree": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
"integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/node": {
"version": "26.1.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz",
"integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~8.3.0"
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
}
},
"node_modules/@vitest/expect": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz",
"integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
"@standard-schema/spec": "^1.1.0",
"@types/chai": "^5.2.2",
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/spy": "4.1.10",
"@vitest/utils": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"chai": "^6.2.2",
"tinyrainbow": "^3.1.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/mocker": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz",
"integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/spy": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"estree-walker": "^3.0.3",
"magic-string": "^0.30.21"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"msw": "^2.4.9",
"vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"msw": {
"optional": true
},
"vite": {
"optional": true
}
}
},
"node_modules/@vitest/pretty-format": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz",
"integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
"tinyrainbow": "^3.1.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/runner": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz",
"integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/utils": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"pathe": "^2.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz",
"integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/pretty-format": "4.1.10",
"@vitest/utils": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"magic-string": "^0.30.21",
"pathe": "^2.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/spy": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz",
"integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/utils": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz",
"integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/pretty-format": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"convert-source-map": "^2.0.0",
"tinyrainbow": "^3.1.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/acorn": {
"version": "8.17.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz",
"integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==",
"dev": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
"dev": true,
"license": "MIT"
},
"node_modules/assertion-error": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
"integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
}
},
"node_modules/bundle-require": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz",
"integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==",
"dev": true,
"license": "MIT",
"dependencies": {
"load-tsconfig": "^0.2.3"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"peerDependencies": {
"esbuild": ">=0.18"
}
},
"node_modules/cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/chai": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
"integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
"license": "MIT",
"dependencies": {
"readdirp": "^4.0.1"
},
"engines": {
"node": ">= 14.16.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
}
},
"node_modules/confbox": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
"integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
"dev": true,
"license": "MIT"
},
"node_modules/consola": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
"integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true,
"license": "MIT"
},
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/debug": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"devOptional": true,
"license": "Apache-2.0",
"engines": {
"node": ">=8"
}
},
"node_modules/effect": {
"version": "4.0.0-beta.83",
"resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-beta.83.tgz",
"integrity": "sha512-0wsak8RtgGAr9UWSbVDgJHZcUqMSvicHcvaZv1MbMM7MCGgW4Rn/137J1MHQbwYPcwYGxT/IqehFd+UbYuj78w==",
"license": "MIT",
"dependencies": {
"@standard-schema/spec": "^1.1.0",
"fast-check": "^4.8.0",
"find-my-way-ts": "^0.1.6",
"ini": "^7.0.0",
"kubernetes-types": "^1.30.0",
"msgpackr": "^2.0.1",
"multipasta": "^0.2.7",
"toml": "^4.1.1",
"uuid": "^14.0.0",
"yaml": "^2.9.0"
}
},
"node_modules/es-module-lexer": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.2.0.tgz",
"integrity": "sha512-3lGxdTXCLfe1MYfTz1y2ksAAUM4NAOP6rPEjxGJVKO7TZ5+tvHCaQWGpC4Y3IXvW3ece0Cz1cIP4FWBxOnGCTQ==",
"dev": true,
"license": "MIT"
},
"node_modules/esbuild": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz",
"integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
fix(deps): clear Dependabot lockfile alerts (#2175) ## Description Clears the current dependency/security-audit blockers that are making unrelated PRs red: - `transformers 5.3.0` / `CVE-2026-5241`, fixed by requiring `transformers>=5.5.0` in the locked optional dependency set. - `sqlitedict <=2.1.0` via the optional `benchmark` extra's `lm-eval[api]` dependency. There is no patched `sqlitedict` release, so this PR removes the published/locked `benchmark` extra instead of shipping a known-vulnerable transitive dependency. - `esbuild >=0.27.3,<0.28.1` in the OpenCode plugin lockfile, fixed by forcing `esbuild@0.28.1` through the OpenCode npm override and regenerated lockfile. The benchmark code still invokes `python -m lm_eval`; researchers who need that harness should install `lm-eval[api]` in their benchmark environment until its transitive vulnerability has a patched release. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - `pyproject.toml`: remove the `benchmark` optional extra, document external `lm-eval[api]` installation guidance, and require `transformers>=5.5.0`. - `uv.lock`: regenerate without the `benchmark` extra, removing `lm-eval` and `sqlitedict` lock entries and locking the patched transformers floor. - `plugins/opencode/package.json`: add an `overrides` entry for `esbuild@0.28.1`. - `plugins/opencode/package-lock.json`: regenerate the OpenCode lockfile with `esbuild@0.28.1`. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [ ] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text uv lock --check rg -n -F 'sqlitedict' uv.lock # no matches rg -n -F 'name = "lm-eval"' uv.lock # no matches rg -n -F "extra == 'benchmark'" uv.lock # no matches rg -n -F '0.27.7' plugins/opencode/package-lock.json plugins/opencode/package.json # no matches npm ls esbuild --package-lock-only npm audit --package-lock-only # found 0 vulnerabilities git diff --check ``` Previous GitHub checks were green. After merging current `main`, fresh GitHub checks are running again; local targeted validation still passes. ## Real Behavior Proof - Environment: Windows 11, Python 3.13.3, uv, npm in `plugins/opencode`, Dependabot/pip-audit alert metadata from the failing PR jobs. - Exact command / steps: inspected the regenerated Python and npm lockfiles with `rg`, checked the uv lock with `uv lock --check`, checked OpenCode's dependency tree with `npm ls esbuild --package-lock-only`, and ran `npm audit --package-lock-only`. - Observed result: `uv.lock` no longer contains `sqlitedict`, `lm-eval`, or a `benchmark` extra marker; `transformers` resolves at the patched `>=5.5.0` floor; OpenCode's lock resolves `esbuild@0.28.1`; `npm audit --package-lock-only` reports 0 vulnerabilities; GitHub `Dependency audit (pip-audit)` passes. - Not tested: running the external `lm-eval` harness after installing it separately. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I have updated the CHANGELOG.md if applicable ## Screenshots (if applicable) N/A - dependency and lockfile security fix. ## Additional Notes The `benchmark` extra can be restored once the upstream `lm-eval[api]` dependency chain stops pulling a vulnerable `sqlitedict` release. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 03:40:28 +00:00
"@esbuild/aix-ppc64": "0.28.1",
"@esbuild/android-arm": "0.28.1",
"@esbuild/android-arm64": "0.28.1",
"@esbuild/android-x64": "0.28.1",
"@esbuild/darwin-arm64": "0.28.1",
"@esbuild/darwin-x64": "0.28.1",
"@esbuild/freebsd-arm64": "0.28.1",
"@esbuild/freebsd-x64": "0.28.1",
"@esbuild/linux-arm": "0.28.1",
"@esbuild/linux-arm64": "0.28.1",
"@esbuild/linux-ia32": "0.28.1",
"@esbuild/linux-loong64": "0.28.1",
"@esbuild/linux-mips64el": "0.28.1",
"@esbuild/linux-ppc64": "0.28.1",
"@esbuild/linux-riscv64": "0.28.1",
"@esbuild/linux-s390x": "0.28.1",
"@esbuild/linux-x64": "0.28.1",
"@esbuild/netbsd-arm64": "0.28.1",
"@esbuild/netbsd-x64": "0.28.1",
"@esbuild/openbsd-arm64": "0.28.1",
"@esbuild/openbsd-x64": "0.28.1",
"@esbuild/openharmony-arm64": "0.28.1",
"@esbuild/sunos-x64": "0.28.1",
"@esbuild/win32-arm64": "0.28.1",
"@esbuild/win32-ia32": "0.28.1",
"@esbuild/win32-x64": "0.28.1"
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
}
},
"node_modules/estree-walker": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
"integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0"
}
},
"node_modules/expect-type": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz",
"integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/fast-check": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.8.0.tgz",
"integrity": "sha512-GOJ158CUMnN6cSahsv4+ExARvIDuzzinFjkp0E9WtiBa5zcVeLozVkWaE4IzFcc+Y48Wp1EDlUZsXRyAztQcSg==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/dubzzz"
},
{
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
],
"license": "MIT",
"dependencies": {
"pure-rand": "^8.0.0"
},
"engines": {
"node": ">=12.17.0"
}
},
"node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
"picomatch": {
"optional": true
}
}
},
"node_modules/find-my-way-ts": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/find-my-way-ts/-/find-my-way-ts-0.1.6.tgz",
"integrity": "sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==",
"license": "MIT"
},
"node_modules/fix-dts-default-cjs-exports": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz",
"integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==",
"dev": true,
"license": "MIT",
"dependencies": {
"magic-string": "^0.30.17",
"mlly": "^1.7.4",
"rollup": "^4.34.8"
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/headroom-ai": {
"version": "0.22.4",
"resolved": "https://registry.npmjs.org/headroom-ai/-/headroom-ai-0.22.4.tgz",
"integrity": "sha512-9a0rgB/jsWe8gs/ggyUwe6E8DYwKAuBvlUml2ApwlUjb5EfJ611X6X+WG0SiXw3nO6sdyV1/+Ah5uw9P7ecnjw==",
"license": "Apache-2.0",
"engines": {
"node": ">=18.0.0"
},
"peerDependencies": {
"@ai-sdk/provider": ">=1.0.0",
"@anthropic-ai/sdk": ">=0.30.0",
"ai": ">=6.0.0",
"openai": ">=4.0.0"
},
"peerDependenciesMeta": {
"@ai-sdk/provider": {
"optional": true
},
"@anthropic-ai/sdk": {
"optional": true
},
"ai": {
"optional": true
},
"openai": {
"optional": true
}
}
},
"node_modules/ini": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/ini/-/ini-7.0.0.tgz",
"integrity": "sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==",
"license": "ISC",
"engines": {
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
}
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"license": "ISC"
},
"node_modules/joycon": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/json-schema": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
"license": "(AFL-2.1 OR BSD-3-Clause)"
},
"node_modules/kubernetes-types": {
"version": "1.30.0",
"resolved": "https://registry.npmjs.org/kubernetes-types/-/kubernetes-types-1.30.0.tgz",
"integrity": "sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q==",
"license": "Apache-2.0"
},
"node_modules/lightningcss": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
"integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
"dev": true,
"license": "MPL-2.0",
"dependencies": {
"detect-libc": "^2.0.3"
},
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
"lightningcss-android-arm64": "1.32.0",
"lightningcss-darwin-arm64": "1.32.0",
"lightningcss-darwin-x64": "1.32.0",
"lightningcss-freebsd-x64": "1.32.0",
"lightningcss-linux-arm-gnueabihf": "1.32.0",
"lightningcss-linux-arm64-gnu": "1.32.0",
"lightningcss-linux-arm64-musl": "1.32.0",
"lightningcss-linux-x64-gnu": "1.32.0",
"lightningcss-linux-x64-musl": "1.32.0",
"lightningcss-win32-arm64-msvc": "1.32.0",
"lightningcss-win32-x64-msvc": "1.32.0"
}
},
"node_modules/lightningcss-android-arm64": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
"integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-darwin-arm64": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
"integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-darwin-x64": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
"integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-freebsd-x64": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
"integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm-gnueabihf": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
"integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
"cpu": [
"arm"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm64-gnu": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
"integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm64-musl": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
"integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-x64-gnu": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
"integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-x64-musl": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
"integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-arm64-msvc": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
"integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-x64-msvc": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
"integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lilconfig": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
"integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/antonk52"
}
},
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true,
"license": "MIT"
},
"node_modules/load-tsconfig": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
"integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
"node_modules/magic-string": {
"version": "0.30.21",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/mlly": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz",
"integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==",
"dev": true,
"license": "MIT",
"dependencies": {
"acorn": "^8.16.0",
"pathe": "^2.0.3",
"pkg-types": "^1.3.1",
"ufo": "^1.6.3"
}
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT"
},
"node_modules/msgpackr": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.4.tgz",
"integrity": "sha512-o1C5KRmuRt+apqMr1HuGSqWStZoRBUpEsCsl15uM9VdAF1qHLtvMOU2En747EnTyEl6c4pzPewRMFF31s1CNbA==",
"license": "MIT",
"optionalDependencies": {
"msgpackr-extract": "^3.0.4"
}
},
"node_modules/msgpackr-extract": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz",
"integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"dependencies": {
"node-gyp-build-optional-packages": "5.2.2"
},
"bin": {
"download-msgpackr-prebuilds": "bin/download-prebuilds.js"
},
"optionalDependencies": {
"@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4",
"@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4",
"@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4",
"@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4",
"@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4",
"@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4"
}
},
"node_modules/multipasta": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/multipasta/-/multipasta-0.2.7.tgz",
"integrity": "sha512-KPA58d68KgGil15oDqXjkUBEBYc00XvbPj5/X+dyzeo/lWm9Nc25pQRlf1D+gv4OpK7NM0J1odrbu9JNNGvynA==",
"license": "MIT"
},
"node_modules/mz": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
"thenify-all": "^1.0.0"
}
},
"node_modules/nanoid": {
deps: bump postcss from 8.5.19 to 8.5.25 in /plugins/opencode (#2748) Bumps [postcss](https://github.com/postcss/postcss) from 8.5.19 to 8.5.25. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.25</h2> <ul> <li>Fixed 8.5.17 visitor regression.</li> <li>Fixed <code>list.split()</code> for non-string values (by <a href="https://github.com/amir-rezaei"><code>@​amir-rezaei</code></a>).</li> </ul> <h2>8.5.24</h2> <ul> <li>Preserve the BOM after the processing (by <a href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li> </ul> <h2>8.5.23</h2> <ul> <li>Do not load source map without <code>opts.from</code> for security reasons.</li> </ul> <h2>8.5.22</h2> <ul> <li>Fixed custom property losing semicolon before a comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> <h2>8.5.21</h2> <ul> <li>Fixed childless at-rule losing semicolon before comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed docs (by <a href="https://github.com/isker"><code>@​isker</code></a>).</li> </ul> <h2>8.5.20</h2> <ul> <li>Fixed missing space if <code>AtRule#params</code> is set after (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed mixing AST error on warnings (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.25</h2> <ul> <li>Fixed 8.5.17 visitor regression.</li> <li>Fixed <code>list.split()</code> for non-string values (by <a href="https://github.com/amir-rezaei"><code>@​amir-rezaei</code></a>).</li> </ul> <h2>8.5.24</h2> <ul> <li>Preserve the BOM after the processing (by <a href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li> </ul> <h2>8.5.23</h2> <ul> <li>Do not load source map without <code>opts.from</code> for security reasons.</li> </ul> <h2>8.5.22</h2> <ul> <li>Fixed custom property losing semicolon before a comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> <h2>8.5.21</h2> <ul> <li>Fixed childless at-rule losing semicolon before comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed docs (by <a href="https://github.com/isker"><code>@​isker</code></a>).</li> </ul> <h2>8.5.20</h2> <ul> <li>Fixed missing space if <code>AtRule#params</code> is set after (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed mixing AST error on warnings (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/08c989c43cc87edb1ed71408c2f5164c54fc21df"><code>08c989c</code></a> Release 8.5.25 version</li> <li><a href="https://github.com/postcss/postcss/commit/24f681471645cd960ee760ab7f9e348fbabfd42c"><code>24f6814</code></a> Fix 8.5.17 visitor regression</li> <li><a href="https://github.com/postcss/postcss/commit/f2fa53f11daab3a16c7eb8bcaf5a945142341df3"><code>f2fa53f</code></a> Add supply chain security requirement to PostCSS plugin guide</li> <li><a href="https://github.com/postcss/postcss/commit/10edf0b0606f97b1510e040c27bfd078c48d6ea7"><code>10edf0b</code></a> fix: return empty array for empty string in list.split (<a href="https://redirect.github.com/postcss/postcss/issues/2121">#2121</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/0ebe8ad591621ab4e48311da47a76974617571f9"><code>0ebe8ad</code></a> Release 8.5.24 version</li> <li><a href="https://github.com/postcss/postcss/commit/73218c64245be53e25d58150e0cc7e984f1d162d"><code>73218c6</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/9a114f62b0deb37be859102f93b414b49385805a"><code>9a114f6</code></a> Preserve the BOM when stringifying (<a href="https://redirect.github.com/postcss/postcss/issues/2119">#2119</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/90692619125cb9424f5eafd8c64bc76b2da23db1"><code>9069261</code></a> Fix types check</li> <li><a href="https://github.com/postcss/postcss/commit/eb9e1fe793740bb3280bdf5bf98147f857f011bd"><code>eb9e1fe</code></a> Release 8.5.23 version</li> <li><a href="https://github.com/postcss/postcss/commit/9d19c78ac91108b3f7d7130e55c6fa806c0efb84"><code>9d19c78</code></a> Update dependencies</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.19...8.5.25">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.5.19&new-version=8.5.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/headroomlabs-ai/headroom/network/alerts). </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-04 21:58:51 -05:00
"version": "3.3.17",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz",
"integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/node-gyp-build-optional-packages": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
"integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==",
"license": "MIT",
"optional": true,
"dependencies": {
"detect-libc": "^2.0.1"
},
"bin": {
"node-gyp-build-optional-packages": "bin.js",
"node-gyp-build-optional-packages-optional": "optional.js",
"node-gyp-build-optional-packages-test": "build-test.js"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/obug": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz",
"integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==",
"dev": true,
"funding": [
"https://github.com/sponsors/sxzz",
"https://opencollective.com/debug"
],
"license": "MIT",
"engines": {
"node": ">=12.20.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/pathe": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true,
"license": "ISC"
},
"node_modules/picomatch": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
"integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/pirates": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
"integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
}
},
"node_modules/pkg-types": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
"integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"confbox": "^0.1.8",
"mlly": "^1.7.4",
"pathe": "^2.0.1"
}
},
"node_modules/postcss": {
deps: bump postcss from 8.5.19 to 8.5.25 in /plugins/opencode (#2748) Bumps [postcss](https://github.com/postcss/postcss) from 8.5.19 to 8.5.25. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.25</h2> <ul> <li>Fixed 8.5.17 visitor regression.</li> <li>Fixed <code>list.split()</code> for non-string values (by <a href="https://github.com/amir-rezaei"><code>@​amir-rezaei</code></a>).</li> </ul> <h2>8.5.24</h2> <ul> <li>Preserve the BOM after the processing (by <a href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li> </ul> <h2>8.5.23</h2> <ul> <li>Do not load source map without <code>opts.from</code> for security reasons.</li> </ul> <h2>8.5.22</h2> <ul> <li>Fixed custom property losing semicolon before a comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> <h2>8.5.21</h2> <ul> <li>Fixed childless at-rule losing semicolon before comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed docs (by <a href="https://github.com/isker"><code>@​isker</code></a>).</li> </ul> <h2>8.5.20</h2> <ul> <li>Fixed missing space if <code>AtRule#params</code> is set after (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed mixing AST error on warnings (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.25</h2> <ul> <li>Fixed 8.5.17 visitor regression.</li> <li>Fixed <code>list.split()</code> for non-string values (by <a href="https://github.com/amir-rezaei"><code>@​amir-rezaei</code></a>).</li> </ul> <h2>8.5.24</h2> <ul> <li>Preserve the BOM after the processing (by <a href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li> </ul> <h2>8.5.23</h2> <ul> <li>Do not load source map without <code>opts.from</code> for security reasons.</li> </ul> <h2>8.5.22</h2> <ul> <li>Fixed custom property losing semicolon before a comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> <h2>8.5.21</h2> <ul> <li>Fixed childless at-rule losing semicolon before comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed docs (by <a href="https://github.com/isker"><code>@​isker</code></a>).</li> </ul> <h2>8.5.20</h2> <ul> <li>Fixed missing space if <code>AtRule#params</code> is set after (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed mixing AST error on warnings (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/08c989c43cc87edb1ed71408c2f5164c54fc21df"><code>08c989c</code></a> Release 8.5.25 version</li> <li><a href="https://github.com/postcss/postcss/commit/24f681471645cd960ee760ab7f9e348fbabfd42c"><code>24f6814</code></a> Fix 8.5.17 visitor regression</li> <li><a href="https://github.com/postcss/postcss/commit/f2fa53f11daab3a16c7eb8bcaf5a945142341df3"><code>f2fa53f</code></a> Add supply chain security requirement to PostCSS plugin guide</li> <li><a href="https://github.com/postcss/postcss/commit/10edf0b0606f97b1510e040c27bfd078c48d6ea7"><code>10edf0b</code></a> fix: return empty array for empty string in list.split (<a href="https://redirect.github.com/postcss/postcss/issues/2121">#2121</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/0ebe8ad591621ab4e48311da47a76974617571f9"><code>0ebe8ad</code></a> Release 8.5.24 version</li> <li><a href="https://github.com/postcss/postcss/commit/73218c64245be53e25d58150e0cc7e984f1d162d"><code>73218c6</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/9a114f62b0deb37be859102f93b414b49385805a"><code>9a114f6</code></a> Preserve the BOM when stringifying (<a href="https://redirect.github.com/postcss/postcss/issues/2119">#2119</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/90692619125cb9424f5eafd8c64bc76b2da23db1"><code>9069261</code></a> Fix types check</li> <li><a href="https://github.com/postcss/postcss/commit/eb9e1fe793740bb3280bdf5bf98147f857f011bd"><code>eb9e1fe</code></a> Release 8.5.23 version</li> <li><a href="https://github.com/postcss/postcss/commit/9d19c78ac91108b3f7d7130e55c6fa806c0efb84"><code>9d19c78</code></a> Update dependencies</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.19...8.5.25">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.5.19&new-version=8.5.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/headroomlabs-ai/headroom/network/alerts). </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-04 21:58:51 -05:00
"version": "8.5.25",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz",
"integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
deps: bump postcss from 8.5.19 to 8.5.25 in /plugins/opencode (#2748) Bumps [postcss](https://github.com/postcss/postcss) from 8.5.19 to 8.5.25. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.25</h2> <ul> <li>Fixed 8.5.17 visitor regression.</li> <li>Fixed <code>list.split()</code> for non-string values (by <a href="https://github.com/amir-rezaei"><code>@​amir-rezaei</code></a>).</li> </ul> <h2>8.5.24</h2> <ul> <li>Preserve the BOM after the processing (by <a href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li> </ul> <h2>8.5.23</h2> <ul> <li>Do not load source map without <code>opts.from</code> for security reasons.</li> </ul> <h2>8.5.22</h2> <ul> <li>Fixed custom property losing semicolon before a comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> <h2>8.5.21</h2> <ul> <li>Fixed childless at-rule losing semicolon before comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed docs (by <a href="https://github.com/isker"><code>@​isker</code></a>).</li> </ul> <h2>8.5.20</h2> <ul> <li>Fixed missing space if <code>AtRule#params</code> is set after (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed mixing AST error on warnings (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.25</h2> <ul> <li>Fixed 8.5.17 visitor regression.</li> <li>Fixed <code>list.split()</code> for non-string values (by <a href="https://github.com/amir-rezaei"><code>@​amir-rezaei</code></a>).</li> </ul> <h2>8.5.24</h2> <ul> <li>Preserve the BOM after the processing (by <a href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li> </ul> <h2>8.5.23</h2> <ul> <li>Do not load source map without <code>opts.from</code> for security reasons.</li> </ul> <h2>8.5.22</h2> <ul> <li>Fixed custom property losing semicolon before a comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> <h2>8.5.21</h2> <ul> <li>Fixed childless at-rule losing semicolon before comment (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed docs (by <a href="https://github.com/isker"><code>@​isker</code></a>).</li> </ul> <h2>8.5.20</h2> <ul> <li>Fixed missing space if <code>AtRule#params</code> is set after (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed mixing AST error on warnings (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/08c989c43cc87edb1ed71408c2f5164c54fc21df"><code>08c989c</code></a> Release 8.5.25 version</li> <li><a href="https://github.com/postcss/postcss/commit/24f681471645cd960ee760ab7f9e348fbabfd42c"><code>24f6814</code></a> Fix 8.5.17 visitor regression</li> <li><a href="https://github.com/postcss/postcss/commit/f2fa53f11daab3a16c7eb8bcaf5a945142341df3"><code>f2fa53f</code></a> Add supply chain security requirement to PostCSS plugin guide</li> <li><a href="https://github.com/postcss/postcss/commit/10edf0b0606f97b1510e040c27bfd078c48d6ea7"><code>10edf0b</code></a> fix: return empty array for empty string in list.split (<a href="https://redirect.github.com/postcss/postcss/issues/2121">#2121</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/0ebe8ad591621ab4e48311da47a76974617571f9"><code>0ebe8ad</code></a> Release 8.5.24 version</li> <li><a href="https://github.com/postcss/postcss/commit/73218c64245be53e25d58150e0cc7e984f1d162d"><code>73218c6</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/9a114f62b0deb37be859102f93b414b49385805a"><code>9a114f6</code></a> Preserve the BOM when stringifying (<a href="https://redirect.github.com/postcss/postcss/issues/2119">#2119</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/90692619125cb9424f5eafd8c64bc76b2da23db1"><code>9069261</code></a> Fix types check</li> <li><a href="https://github.com/postcss/postcss/commit/eb9e1fe793740bb3280bdf5bf98147f857f011bd"><code>eb9e1fe</code></a> Release 8.5.23 version</li> <li><a href="https://github.com/postcss/postcss/commit/9d19c78ac91108b3f7d7130e55c6fa806c0efb84"><code>9d19c78</code></a> Update dependencies</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.19...8.5.25">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.5.19&new-version=8.5.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/headroomlabs-ai/headroom/network/alerts). </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-04 21:58:51 -05:00
"nanoid": "^3.3.16",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postcss-load-config": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
"integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"lilconfig": "^3.1.1"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"jiti": ">=1.21.0",
"postcss": ">=8.0.9",
"tsx": "^4.8.1",
"yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"jiti": {
"optional": true
},
"postcss": {
"optional": true
},
"tsx": {
"optional": true
},
"yaml": {
"optional": true
}
}
},
"node_modules/pure-rand": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-8.4.1.tgz",
"integrity": "sha512-c58R2+SPFcSIPXoU834QN/KPDDOSd8sXcSrqf6e83Me6Rrp1EYkxukkjXMVrKvKaADs1SOyNkWdfvLf6zY8qLQ==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/dubzzz"
},
{
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
],
"license": "MIT"
},
"node_modules/readdirp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 14.18.0"
},
"funding": {
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/rolldown": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz",
"integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@oxc-project/types": "=0.139.0",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"@rolldown/pluginutils": "^1.0.0"
},
"bin": {
"rolldown": "bin/cli.mjs"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@rolldown/binding-android-arm64": "1.1.5",
"@rolldown/binding-darwin-arm64": "1.1.5",
"@rolldown/binding-darwin-x64": "1.1.5",
"@rolldown/binding-freebsd-x64": "1.1.5",
"@rolldown/binding-linux-arm-gnueabihf": "1.1.5",
"@rolldown/binding-linux-arm64-gnu": "1.1.5",
"@rolldown/binding-linux-arm64-musl": "1.1.5",
"@rolldown/binding-linux-ppc64-gnu": "1.1.5",
"@rolldown/binding-linux-s390x-gnu": "1.1.5",
"@rolldown/binding-linux-x64-gnu": "1.1.5",
"@rolldown/binding-linux-x64-musl": "1.1.5",
"@rolldown/binding-openharmony-arm64": "1.1.5",
"@rolldown/binding-wasm32-wasi": "1.1.5",
"@rolldown/binding-win32-arm64-msvc": "1.1.5",
"@rolldown/binding-win32-x64-msvc": "1.1.5"
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
}
},
"node_modules/rollup": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz",
"integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.9"
},
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.62.2",
"@rollup/rollup-android-arm64": "4.62.2",
"@rollup/rollup-darwin-arm64": "4.62.2",
"@rollup/rollup-darwin-x64": "4.62.2",
"@rollup/rollup-freebsd-arm64": "4.62.2",
"@rollup/rollup-freebsd-x64": "4.62.2",
"@rollup/rollup-linux-arm-gnueabihf": "4.62.2",
"@rollup/rollup-linux-arm-musleabihf": "4.62.2",
"@rollup/rollup-linux-arm64-gnu": "4.62.2",
"@rollup/rollup-linux-arm64-musl": "4.62.2",
"@rollup/rollup-linux-loong64-gnu": "4.62.2",
"@rollup/rollup-linux-loong64-musl": "4.62.2",
"@rollup/rollup-linux-ppc64-gnu": "4.62.2",
"@rollup/rollup-linux-ppc64-musl": "4.62.2",
"@rollup/rollup-linux-riscv64-gnu": "4.62.2",
"@rollup/rollup-linux-riscv64-musl": "4.62.2",
"@rollup/rollup-linux-s390x-gnu": "4.62.2",
"@rollup/rollup-linux-x64-gnu": "4.62.2",
"@rollup/rollup-linux-x64-musl": "4.62.2",
"@rollup/rollup-openbsd-x64": "4.62.2",
"@rollup/rollup-openharmony-arm64": "4.62.2",
"@rollup/rollup-win32-arm64-msvc": "4.62.2",
"@rollup/rollup-win32-ia32-msvc": "4.62.2",
"@rollup/rollup-win32-x64-gnu": "4.62.2",
"@rollup/rollup-win32-x64-msvc": "4.62.2",
"fsevents": "~2.3.2"
}
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/siginfo": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
"integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
"dev": true,
"license": "ISC"
},
"node_modules/source-map": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
"integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">= 12"
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/stackback": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true,
"license": "MIT"
},
"node_modules/std-env": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
"dev": true,
"license": "MIT"
},
"node_modules/sucrase": {
"version": "3.35.1",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
"integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
"lines-and-columns": "^1.1.6",
"mz": "^2.7.0",
"pirates": "^4.0.1",
"tinyglobby": "^0.2.11",
"ts-interface-checker": "^0.1.9"
},
"bin": {
"sucrase": "bin/sucrase",
"sucrase-node": "bin/sucrase-node"
},
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/thenify": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
"license": "MIT",
"dependencies": {
"any-promise": "^1.0.0"
}
},
"node_modules/thenify-all": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
"license": "MIT",
"dependencies": {
"thenify": ">= 3.1.0 < 4"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/tinybench": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
"integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
"dev": true,
"license": "MIT"
},
"node_modules/tinyexec": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
"integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
"dev": true,
"license": "MIT"
},
"node_modules/tinyglobby": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
"integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
"picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/tinyrainbow": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
"integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/toml": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/toml/-/toml-4.1.1.tgz",
"integrity": "sha512-EBJnVBr3dTXdA89WVFoAIPUqkBjxPMwRqsfuo1r240tKFHXv3zgca4+NJib/h6TyvGF7vOawz0jGuryJCdNHrw==",
"license": "MIT",
"engines": {
"node": ">=20"
}
},
"node_modules/tree-kill": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
"integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
"dev": true,
"license": "MIT",
"bin": {
"tree-kill": "cli.js"
}
},
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"dev": true,
"license": "0BSD",
"optional": true
},
"node_modules/tsup": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz",
"integrity": "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==",
"dev": true,
"license": "MIT",
"dependencies": {
"bundle-require": "^5.1.0",
"cac": "^6.7.14",
"chokidar": "^4.0.3",
"consola": "^3.4.0",
"debug": "^4.4.0",
"esbuild": "^0.27.0",
"fix-dts-default-cjs-exports": "^1.0.0",
"joycon": "^3.1.1",
"picocolors": "^1.1.1",
"postcss-load-config": "^6.0.1",
"resolve-from": "^5.0.0",
"rollup": "^4.34.8",
"source-map": "^0.7.6",
"sucrase": "^3.35.0",
"tinyexec": "^0.3.2",
"tinyglobby": "^0.2.11",
"tree-kill": "^1.2.2"
},
"bin": {
"tsup": "dist/cli-default.js",
"tsup-node": "dist/cli-node.js"
},
"engines": {
"node": ">=18"
},
"peerDependencies": {
"@microsoft/api-extractor": "^7.36.0",
"@swc/core": "^1",
"postcss": "^8.4.12",
"typescript": ">=4.5.0"
},
"peerDependenciesMeta": {
"@microsoft/api-extractor": {
"optional": true
},
"@swc/core": {
"optional": true
},
"postcss": {
"optional": true
},
"typescript": {
"optional": true
}
}
},
"node_modules/typescript": {
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/ufo": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz",
"integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==",
"dev": true,
"license": "MIT"
},
"node_modules/undici-types": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
"integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT"
},
"node_modules/uuid": {
"version": "14.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz",
"integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
"license": "MIT",
"bin": {
"uuid": "dist-node/bin/uuid"
}
},
"node_modules/vite": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "8.1.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz",
"integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
"lightningcss": "^1.32.0",
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"picomatch": "^4.0.5",
"postcss": "^8.5.16",
"rolldown": "~1.1.4",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"tinyglobby": "^0.2.17"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
"fsevents": "~2.3.3"
},
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
"@vitejs/devtools": "^0.3.0",
"esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
"sass": "^1.70.0",
"sass-embedded": "^1.70.0",
"stylus": ">=0.54.8",
"sugarss": "^5.0.0",
"terser": "^5.16.0",
"tsx": "^4.8.1",
"yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
"@vitejs/devtools": {
"optional": true
},
"esbuild": {
"optional": true
},
"jiti": {
"optional": true
},
"less": {
"optional": true
},
"sass": {
"optional": true
},
"sass-embedded": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"terser": {
"optional": true
},
"tsx": {
"optional": true
},
"yaml": {
"optional": true
}
}
},
"node_modules/vitest": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz",
"integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"dev": true,
"license": "MIT",
"dependencies": {
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/expect": "4.1.10",
"@vitest/mocker": "4.1.10",
"@vitest/pretty-format": "4.1.10",
"@vitest/runner": "4.1.10",
"@vitest/snapshot": "4.1.10",
"@vitest/spy": "4.1.10",
"@vitest/utils": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"es-module-lexer": "^2.0.0",
"expect-type": "^1.3.0",
"magic-string": "^0.30.21",
"obug": "^2.1.1",
"pathe": "^2.0.3",
"picomatch": "^4.0.3",
"std-env": "^4.0.0-rc.1",
"tinybench": "^2.9.0",
"tinyexec": "^1.0.2",
"tinyglobby": "^0.2.15",
"tinyrainbow": "^3.1.0",
"vite": "^6.0.0 || ^7.0.0 || ^8.0.0",
"why-is-node-running": "^2.3.0"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
"node": "^20.0.0 || ^22.0.0 || >=24.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
"@opentelemetry/api": "^1.9.0",
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
deps: bump the npm-minor-patch group across 4 directories with 18 updates (#1907) Bumps the npm-minor-patch group with 12 updates in the /docs directory: | Package | From | To | | --- | --- | --- | | [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [fumadocs-mdx](https://github.com/fuma-nama/fumadocs) | `15.0.12` | `15.1.0` | | [fumadocs-twoslash](https://github.com/fuma-nama/fumadocs) | `3.1.15` | `3.3.0` | | [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.10.3` | `16.11.1` | | [next](https://github.com/vercel/next.js) | `16.2.6` | `16.2.10` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.9.2` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.3.2` | | [@types/mdx](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mdx) | `2.0.13` | `2.0.14` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.16` | Bumps the npm-minor-patch group with 1 update in the /plugins/openclaw directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Bumps the npm-minor-patch group with 2 updates in the /plugins/opencode directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and @opencode-ai/plugin. Bumps the npm-minor-patch group with 3 updates in the /sdk/typescript directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest), [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [dotenv](https://github.com/motdotla/dotenv). Updates `fumadocs-core` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-core@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-mdx` from 15.0.12 to 15.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-mdx's releases</a>.</em></p> <blockquote> <h2>fumadocs-mdx@15.1.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-mdx@15.0.13</h2> <h3>Require <code>collection</code> query param at regex matching</h3> <p>Instead of passing through all JSON/YAML files, the meta loader now requires <code>collection</code> query param to be triggered.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-mdx@15.0.12...fumadocs-mdx@15.1.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-twoslash` from 3.1.15 to 3.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fuma-nama/fumadocs/releases">fumadocs-twoslash's releases</a>.</em></p> <blockquote> <h2>fumadocs-twoslash@3.3.0</h2> <h3>Default to Base UI</h3> <p>Internal packages &amp; templates now use Base UI rather than Radix UI.</p> <h2>fumadocs-twoslash@3.2.1</h2> <h3>Migrate to <code>cnfast</code></h3> <p>Drop <code>tailwind-merge</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/02c242b0daf08dee4f498bfd787604d039f3fa80"><code>02c242b</code></a> chore(satteri): clean code</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3d80b8b24221ef3cf788fe3f4f1e48fc9e0aefe1"><code>3d80b8b</code></a> fix(mdx): ensure satteri integration is optional</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0ec19af8682cf9c2149a3ea3e04af1fe4fe9cc0e"><code>0ec19af</code></a> feat(satteri): more tests &amp; move remark-include</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-twoslash@3.1.15...fumadocs-twoslash@3.3.0">compare view</a></li> </ul> </details> <br /> Updates `fumadocs-ui` from 16.10.3 to 16.11.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fuma-nama/fumadocs/commit/ab09f500cb0c7904b9e7fcf25debb8f53f54ded8"><code>ab09f50</code></a> Version Packages (<a href="https://redirect.github.com/fuma-nama/fumadocs/issues/3405">#3405</a>)</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/889a296d06f669308a51af994ddf5e62783f6b3c"><code>889a296</code></a> docs: update stale content</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/a5c081d0c6ba6e4d57fdfeaa982925bdf9941215"><code>a5c081d</code></a> fix: UI inconsistencies</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/9a269030dff857982d848aac5b4944abf30cfb77"><code>9a26903</code></a> Version Packages</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3e33f4362f257741f68806c9db96fe7f0828a2df"><code>3e33f43</code></a> perf(satteri): reduce clones</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/3597c9d1e6b1a038cf3b52c5aed448ef13fbe5e5"><code>3597c9d</code></a> perf(satteri): persist results</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0f389cf3def8f8188316c13af7ec9e2adcd206c3"><code>0f389cf</code></a> feat(satteri): decouple imports/exports from <code>compile()</code></li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/4611f97d49f000c23600e09619bd13ae97d298b7"><code>4611f97</code></a> feat(satteri): full rehype-toc functionality</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/d09530076098b3a297e1d90f295dd1ab7c6564d6"><code>d095300</code></a> fix(satteri): workaround common issues</li> <li><a href="https://github.com/fuma-nama/fumadocs/commit/0297e25477d3120c9e4da796f244ab2866b61292"><code>0297e25</code></a> configure pretrust</li> <li>Additional commits viewable in <a href="https://github.com/fuma-nama/fumadocs/compare/fumadocs-ui@16.10.3...fumadocs@16.11.1">compare view</a></li> </ul> </details> <br /> Updates `lucide-react` from 1.20.0 to 1.23.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lucide-icons/lucide/releases">lucide-react's releases</a>.</em></p> <blockquote> <h2>Version 1.23.0</h2> <h2>What's Changed</h2> <ul> <li>fix(docs): prevent scrollbar layout shift on icons page by <a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li>chore(docs): Remove certificates banner by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li> <li>ci(repo-journal.yml): GH copilot repo summary by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li> <li>ci(repo-journal.yml): Small fix in the workflow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li> <li>ci(repo-journal.yml): Switch to token by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li> <li>feat(icons): added <code>paper-bag</code> icon by <a href="https://github.com/dkast"><code>@​dkast</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li> <li><a href="https://github.com/dkast"><code>@​dkast</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p> <h2>Version 1.22.0</h2> <h2>What's Changed</h2> <ul> <li>feat(icons): add 6 database variant icons by <a href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li> <li>ci(release.yml): Remove concurrency field to prevent release mess by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li> <li>fix(docs): fix color input clipping by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li> <li>docs(site): add Deno to installation instructions by <a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> <li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li> <li>fix(docs): prevent private analytics token from blocking local dev by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li> <li>docs(installation.md): Remove outdate next tag in installation by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li> <li>fix(lucide-react-native): Fix context provider export by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li> <li>fix(astro): add Astro v7 compatibility by <a href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li> <li>fix(icons): changed <code>carrot</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li> <li>fix(icons): changed <code>ungroup</code> icon by <a href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li> <li>feat(icons): added <code>phi</code> icon also used as <code>golden-ratio</code> by <a href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p> <h2>Version 1.21.0</h2> <h2>What's Changed</h2> <ul> <li>ci(release.yml): Remove new-version in release flow by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4478">lucide-icons/lucide#4478</a></li> <li>ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts by <a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4479">lucide-icons/lucide#4479</a></li> <li>fix(docs): rename navigation category label by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li>feat(icons): added <code>broken-bone</code> icon by <a href="https://github.com/Patolord"><code>@​Patolord</code></a> in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4483">lucide-icons/lucide#4483</a></li> <li><a href="https://github.com/Patolord"><code>@​Patolord</code></a> made their first contribution in <a href="https://redirect.github.com/lucide-icons/lucide/pull/4131">lucide-icons/lucide#4131</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0">https://github.com/lucide-icons/lucide/compare/1.20.0...1.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lucide-icons/lucide/commit/5ff536e1391335e4f7dc38d244c1bc458b9443e2"><code>5ff536e</code></a> ci(release.yml): Fix workflow and remove <code>version</code> scripts in package scripts...</li> <li>See full diff in <a href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare view</a></li> </ul> </details> <br /> Updates `next` from 16.2.6 to 16.2.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vercel/next.js/releases">next's releases</a>.</em></p> <blockquote> <h2>v16.2.10</h2> <p>Contains no changes except publishing <code>@next/swc-wasm-web</code> which was accidentally not published since 16.2.4.</p> <h2>v16.2.9</h2> <p>Empty release to ensure <code>next@latest</code> points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.</p> <h2>v16.2.8</h2> <p>Release with no changes in an attempt to fix <code>next@latest</code> pointing at a prerelease version.</p> <h2>v16.2.7</h2> <blockquote> <p>[!NOTE] This release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p> </blockquote> <h3>Core Changes</h3> <ul> <li>Backport documentation fixes for v16.2 (<a href="https://redirect.github.com/vercel/next.js/issues/93804">#93804</a>)</li> <li>[backport] Patch <code>playwright-core</code> to resolve <code>_finishedPromise</code> on <code>requestFailed</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93920">#93920</a>)</li> <li>[backport] Fix dev mode hydration failure when page is served from HTTP cache (<a href="https://redirect.github.com/vercel/next.js/issues/93492">#93492</a>)</li> <li>[backport] Fix catch-all <code>router.query</code> corruption with <code>basePath</code> + <code>rewrites</code> (<a href="https://redirect.github.com/vercel/next.js/issues/93917">#93917</a>)</li> <li>[backport] Encode non-ASCII characters in cache tags at construction (<a href="https://redirect.github.com/vercel/next.js/issues/93918">#93918</a>)</li> <li>[backport] Fix server action forwarding loop with middleware rewrites (<a href="https://redirect.github.com/vercel/next.js/issues/93919">#93919</a>)</li> <li>[backport] Turbopack: switch from base40 to base38 hash encoding (<a href="https://redirect.github.com/vercel/next.js/issues/93932">#93932</a>)</li> <li>[ci] Disable hanging node 24 typescript tests on 16.2 backport branch (<a href="https://redirect.github.com/vercel/next.js/issues/94164">#94164</a>)</li> <li>[backport] Fix &quot;type: module&quot; in project dir when using standalone or adapters (<a href="https://redirect.github.com/vercel/next.js/issues/94050">#94050</a>)</li> <li>[backport] Propagate adapter preferred regions (<a href="https://redirect.github.com/vercel/next.js/issues/94200">#94200</a>)</li> <li>[16.2.x] Don't drop <code>FormData</code> entries (<a href="https://redirect.github.com/vercel/next.js/issues/94240">#94240</a>)</li> <li>[backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (<a href="https://redirect.github.com/vercel/next.js/issues/94284">#94284</a>)</li> </ul> <h3>Credits</h3> <p>Huge thanks to <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a href="https://github.com/bgw"><code>@​bgw</code></a>, <a href="https://github.com/timneutkens"><code>@​timneutkens</code></a>, and <a href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a> for helping!</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vercel/next.js/commit/9dadfd693c5d26bb3c85d1c17802f49dde244b3e"><code>9dadfd6</code></a> v16.2.10</li> <li><a href="https://github.com/vercel/next.js/commit/534d9c144ca342ff9ee5569241a814539d6eadb9"><code>534d9c1</code></a> [16.2.x] Release pipeline updates (<a href="https://redirect.github.com/vercel/next.js/issues/95160">#95160</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/98941fc427213b0b2770ac40e24a1855ea0ae349"><code>98941fc</code></a> backport: docs fixes 16.2.x (<a href="https://redirect.github.com/vercel/next.js/issues/94935">#94935</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6e1a94de7c4e68892de4b1e28262be5970358458"><code>6e1a94d</code></a> [16.2.x][ci]: fix release script to not strip newlines (<a href="https://redirect.github.com/vercel/next.js/issues/94640">#94640</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/f37fad940522e000af5498209fd237d863b4fa16"><code>f37fad9</code></a> v16.2.9</li> <li><a href="https://github.com/vercel/next.js/commit/d9aaaedfd8050e58e3c82c1cea412d670750b32b"><code>d9aaaed</code></a> [cd] Allow tagging semver-lower releases as <code>@latest</code> if <code>@latest</code> po… (<a href="https://redirect.github.com/vercel/next.js/issues/94627">#94627</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/6f1680448c81904efcd36704edf01a6b7323abbf"><code>6f16804</code></a> v16.2.8</li> <li><a href="https://github.com/vercel/next.js/commit/0dbc1d5c860bf47c8c4f794e053b93fd02355d4e"><code>0dbc1d5</code></a> [16.2.x][cd] Ensure release can be triggered on old branches (<a href="https://redirect.github.com/vercel/next.js/issues/94598">#94598</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/90e3c811e7a3603a60dfcf627cc65f8b24ad1d5d"><code>90e3c81</code></a> [16.2.x] Align Actions dependencies with Canary (<a href="https://redirect.github.com/vercel/next.js/issues/94339">#94339</a>)</li> <li><a href="https://github.com/vercel/next.js/commit/83f402c69db9faf3f727bea5c85249fe9af9af54"><code>83f402c</code></a> [16.2.x][cd] Stop fetching all tags when searching parent tag (<a href="https://redirect.github.com/vercel/next.js/issues/94334">#94334</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react since your current version.</p> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.4 to 19.2.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.7 (June 1st, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a> by <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> <h2>19.2.5 (April 8th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Add more cycle protections (<a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react/react/blob/main/CHANGELOG.md">react-dom's changelog</a>.</em></p> <blockquote> <h2>19.2.7 (June 1, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Fixed missing <code>FormData</code> entries in Server Actions which regressed in 19.2.6 (<a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>)</li> </ul> <h2>19.2.6 (May 6, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Type hardening and performance improvements (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>)</li> </ul> <h2>19.2.5 (March 18, 2026)</h2> <h3>React Server Components</h3> <ul> <li>Add more cycle protections (<a href="https://github.com/eps1lon"><code>@​eps1lon</code></a>, <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a> Version 19.2.7 (<a href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li> <li><a href="https://github.com/react/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li><a href="https://github.com/react/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a> 19.2.5</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for react-dom since your current version.</p> </details> <br /> Updates `recharts` from 3.8.1 to 3.9.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/recharts/recharts/releases">recharts's releases</a>.</em></p> <blockquote> <h2>v3.9.2</h2> <h2>What's Changed</h2> <ul> <li>docs: clarify custom labels and ticks need SVG elements by <a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li>chore(deps): bump immer from 11.1.8 to 11.1.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7526">recharts/recharts#7526</a></li> <li>fix(Sankey): avoid exponential depth traversal on dense graphs by <a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ishaanlabs-gg"><code>@​ishaanlabs-gg</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7524">recharts/recharts#7524</a></li> <li><a href="https://github.com/dm-gthb"><code>@​dm-gthb</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7479">recharts/recharts#7479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2">https://github.com/recharts/recharts/compare/v3.9.1...v3.9.2</a></p> <h2>v3.9.1</h2> <h2>What's Changed</h2> <ul> <li>perf: optimize ScatterChart hover by reducing re-renders from O(n) to O(1) by <a href="https://github.com/roy7"><code>@​roy7</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7133">recharts/recharts#7133</a></li> <li>fix(YAxis): render explicit ticks when a non-literal domain can't resolve on empty data (<a href="https://redirect.github.com/recharts/recharts/issues/7362">#7362</a>) by <a href="https://github.com/nlenepveu"><code>@​nlenepveu</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7393">recharts/recharts#7393</a></li> <li>fix: avoid Sankey nodes overlapping skipped-depth links by <a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li>Add stacked bar chart with horizontal threshold line example by <a href="https://github.com/nijuse"><code>@​nijuse</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li>fix(DefaultLegendContent): omit empty value from legend icon aria-label by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li>chore(deps): bump immer from 10.2.0 to 11.1.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/recharts/recharts/pull/7452">recharts/recharts#7452</a></li> <li>fix(getNiceTickValues): remove trailing duplicate tick when allowDecimals=false by <a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> <li>Fix/per graphical item formatter prop by <a href="https://github.com/shreedharbhat98"><code>@​shreedharbhat98</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7287">recharts/recharts#7287</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/pupuking723"><code>@​pupuking723</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7471">recharts/recharts#7471</a></li> <li><a href="https://github.com/nijuse"><code>@​nijuse</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7495">recharts/recharts#7495</a></li> <li><a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7501">recharts/recharts#7501</a></li> <li><a href="https://github.com/JSap0914"><code>@​JSap0914</code></a> made their first contribution in <a href="https://redirect.github.com/recharts/recharts/pull/7482">recharts/recharts#7482</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1">https://github.com/recharts/recharts/compare/v3.9.0...v3.9.1</a></p> <h2>v3.9.0</h2> <h2>What's Changed</h2> <h3>Animations</h3> <p>3.9 comes with new animations! There are several bug fixes and what's best, all animations are now fully customizable.</p> <p>See the animations guide on <a href="https://recharts.github.io/en-US/guide/animations/">https://recharts.github.io/en-US/guide/animations/</a></p> <ul> <li>Animation guide by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7179">recharts/recharts#7179</a></li> <li>Animation tests by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7255">recharts/recharts#7255</a></li> <li>New animation props by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7215">recharts/recharts#7215</a></li> <li>test: cover legacy animation length changes by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7283">recharts/recharts#7283</a></li> <li>test: add sparse animation path tests for Line component by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7295">recharts/recharts#7295</a></li> <li>Export and document interpolate function by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7293">recharts/recharts#7293</a></li> <li>test: enhance line animation tests for ComposedChart and responsive by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7289">recharts/recharts#7289</a></li> <li>Manual animations on website by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7483">recharts/recharts#7483</a></li> <li>Add new example where chart animates by scroll by <a href="https://github.com/PavelVanecek"><code>@​PavelVanecek</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7484">recharts/recharts#7484</a></li> <li>fix: preserve single-value line dash gaps during animation by <a href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a> in <a href="https://redirect.github.com/recharts/recharts/pull/7405">recharts/recharts#7405</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/recharts/recharts/commit/b3451050c027a23957ffa50a2665c9119df21e47"><code>b345105</code></a> 3.9.2</li> <li><a href="https://github.com/recharts/recharts/commit/f27779c0487f369b5d6440d1d65803bd5bea1bec"><code>f27779c</code></a> npm i</li> <li><a href="https://github.com/recharts/recharts/commit/85f9369f40b4ce2a31a0a4bcafe9c7ff913ae9b9"><code>85f9369</code></a> chore(deps-dev): bump prettier from 3.8.4 to 3.9.4 (<a href="https://redirect.github.com/recharts/recharts/issues/7520">#7520</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/52a2a896cf8cf1fc91c9cd34ae61e8be6f6f5aac"><code>52a2a89</code></a> fix(Sankey): avoid exponential depth traversal on dense graphs (<a href="https://redirect.github.com/recharts/recharts/issues/7479">#7479</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/8a056c101820a5bc17dc6a4ee366e385b35fa592"><code>8a056c1</code></a> chore(deps-dev): bump rollup from 4.61.1 to 4.62.2 (<a href="https://redirect.github.com/recharts/recharts/issues/7527">#7527</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/2af6ec6f0f6923a0a2302d4514949e9deb6db163"><code>2af6ec6</code></a> chore(deps): bump immer from 11.1.8 to 11.1.9 (<a href="https://redirect.github.com/recharts/recharts/issues/7526">#7526</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6f10d53cf660bc8637284477683d88aa6de1497d"><code>6f10d53</code></a> docs: clarify custom labels and ticks need SVG elements (<a href="https://redirect.github.com/recharts/recharts/issues/7524">#7524</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/c04f1a7678ac0632586cff122ad65c0758a79aef"><code>c04f1a7</code></a> chore(deps-dev): bump lint-staged from 17.0.7 to 17.0.8 (<a href="https://redirect.github.com/recharts/recharts/issues/7521">#7521</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/69c7a9630a780748f9b6452f33064bd403140cd5"><code>69c7a96</code></a> chore(deps-dev): bump glob from 11.1.0 to 13.0.6 (<a href="https://redirect.github.com/recharts/recharts/issues/7522">#7522</a>)</li> <li><a href="https://github.com/recharts/recharts/commit/6efaf16a1ad210303599ad1482e03e12fda171c5"><code>6efaf16</code></a> chore(deps): bump es-toolkit from 1.47.0 to 1.49.0 (<a href="https://redirect.github.com/recharts/recharts/issues/7515">#7515</a>)</li> <li>Additional commits viewable in <a href="https://github.com/recharts/recharts/compare/v3.8.1...v3.9.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for recharts since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version modifies <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.2 to 4.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.2</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>v4.3.1</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Generate <code>0</code> instead of <code>calc(var(--spacing) * 0)</code> for spacing utilities like <code>m-0</code> and <code>left-0</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20196">#20196</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.2] - 2026-06-26</h2> <h3>Fixed</h3> <ul> <li>Support bare spacing values for <code>auto-rows-*</code> and <code>auto-cols-*</code> utilities (e.g. <code>auto-rows-12</code> and <code>auto-cols-16</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229">#20229</a>)</li> <li>Prevent <code>@tailwindcss/cli</code> in <code>--watch</code> mode from crashing on Windows when <code>@source</code> points to a directory that doesn't exist (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242">#20242</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing in Deno v2.8.x when <code>context.parentURL</code> is not a valid URL (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245">#20245</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode rebuilds when the input CSS file changes in an ignored directory (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246">#20246</a>)</li> <li>Allow <code>@variant</code> rules used in <code>addBase(…)</code> to use custom variants defined later (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247">#20247</a>)</li> <li>Prevent <code>@tailwindcss/vite</code> from crashing during HMR when scanned files or directories are deleted (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259">#20259</a>)</li> <li>Generate <code>font-size</code> instead of <code>color</code> declarations for <code>text-[--spacing(…)]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260">#20260</a>)</li> <li>Prevent <code>@source</code> patterns from scanning unrelated sibling files and folders (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263">#20263</a>)</li> <li>Extract class candidates adjacent to Template Toolkit delimiters like <code>%]…[%</code> in <code>.tt</code>, <code>.tt2</code>, and <code>.tx</code> files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Extract class candidates from conditional Maud syntax like <code>p.text-black[condition]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269">#20269</a>)</li> <li>Prevent <code>@position-try</code> rules from triggering unknown at-rule warnings when optimizing CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277">#20277</a>)</li> <li>Support class suggestions for named opacity modifiers from <code>--opacity</code> theme values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287">#20287</a>)</li> <li>Prevent type errors in <code>@tailwindcss/postcss</code> when used with newer PostCSS patch releases (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289">#20289</a>)</li> </ul> <h2>[4.3.1] - 2026-06-12</h2> <h3>Added</h3> <ul> <li>Add <code>--silent</code> option to suppress output in <code>@tailwindcss/cli</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100">#20100</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Remove deprecation warnings by using <code>Module#registerHooks</code> instead of <code>Module#register</code> on Node 26+ (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028">#20028</a>)</li> <li>Canonicalization: don't crash when plugin utilities throw for unsupported values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052">#20052</a>)</li> <li>Allow <code>@apply</code> to be used with CSS mixins (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427">#19427</a>)</li> <li>Ensure <code>not-*</code> correctly negates <code>@container</code> queries, including <code>style(…)</code> queries (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059">#20059</a>)</li> <li>Ensure <code>drop-shadow-*</code> color utilities work with custom shadow values containing <code>calc(…)</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080">#20080</a>)</li> <li>Fix 'Sourcemap is likely to be incorrect' warnings when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103">#20103</a>)</li> <li>Ensure <code>@tailwindcss/webpack</code> can be installed in Rspack projects without requiring <code>webpack</code> as a peer dependency (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027">#20027</a>)</li> <li>Canonicalization: don't suggest invalid <code>calc(…)</code> expressions (e.g. <code>px-[calc(1rem+0px)]</code> → <code>px-[calc(1rem+0)]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20127">#20127</a>)</li> <li>Canonicalization: avoid suggesting large spacing-scale values for arbitrary lengths (e.g. <code>left-[99999px]</code> → <code>left-[99999px]</code>, not <code>left-24999.75</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20130">#20130</a>)</li> <li>Ensure <code>@tailwindcss/cli</code> in <code>--watch</code> mode recovers when a tracked dependency is deleted and restored (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20137">#20137</a>)</li> <li>Ensure standalone <code>@tailwindcss/cli</code> binaries are ignored when scanning for class candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20139">#20139</a>)</li> <li>Ensure class candidates are extracted from Twig <code>addClass(…)</code> and <code>removeClass(…)</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20198">#20198</a>)</li> <li>Don't crash in the Ruby or Vue preprocessors when scanning files containing invalid UTF-8 bytes (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19588">#19588</a>)</li> <li>Allow <code>@variant</code> to be used inside <code>addBase</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19480">#19480</a>)</li> <li>Ensure <code>@source</code> globs with symlinks are preserved (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Ensure later <code>@source</code> rules can re-include files excluded by earlier <code>@source not</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20203">#20203</a>)</li> <li>Upgrade: don't migrate empty class rules to invalid <code>@utility</code> rules (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20205">#20205</a>)</li> <li>Ensure transitions between <code>inset-shadow-none</code> and other inset shadows work correctly (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20208">#20208</a>)</li> <li>Ensure explicitly referenced <code>@source</code> directories are scanned even when ignored by git (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20214">#20214</a>)</li> <li>Ensure <code>@source</code> globs ending in <code>**/*</code> preserve dynamic path segments to avoid scanning too many files (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20217">#20217</a>)</li> <li>Canonicalization: don't fold <code>calc(…)</code> divisions when the result would require high precision (e.g. <code>w-[calc(100%/3.5)]</code> → <code>w-[calc(100%/3.5)]</code>, not <code>w-[28.571428571428573%]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20221">#20221</a>)</li> <li>Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20228">#20228</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f"><code>056a155</code></a> 4.3.2 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20281">#20281</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9"><code>8a14a71</code></a> 4.3.1 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20226">#20226</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/522288ca08c7ed0e7e9d3256f40fd36981d451a3"><code>522288c</code></a> Serve ESM type declarations to ESM importers of <code>@tailwindcss/postcss</code> (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20228">#20228</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/8dcdb66e8a58b9df621ed1a9cb59396e0ddb6dd7"><code>8dcdb66</code></a> Bump dependencies (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20095">#20095</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9"><code>588bd73</code></a> 4.3.0 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20023">#20023</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/12eb5ae7b6026ff64c04f889b2221418d772da72"><code>12eb5ae</code></a> Cleanup noisy test output (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20015">#20015</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/4255671c5f792c42808ecd6b2dec27c16e3c559e"><code>4255671</code></a> Improve snapshot tests (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/20013">#20013</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/52f94c74bb491e9c3641ce322a0ef90fb3c45de6"><code>52f94c7</code></a> Improve codebase quality (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19999">#19999</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd"><code>d194d4c</code></a> docs: fix various typos in comments and documentation (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19878">#19878</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/bfb5732b0b948d89c6803cb537bca168ec8e0a46"><code>bfb5732</code></a> Fall back to the plugin <code>base</code> when PostCSS has no <code>from</code> option (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss/issues/19980">#19980</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for <code>@​tailwindcss/postcss</code> since your current version.</p> </details> <br /> Updates `@types/mdx` from 2.0.13 to 2.0.14 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mdx">compare view</a></li> </ul> </details> <br /> Updates `@types/react` from 19.2.14 to 19.2.17 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare view</a></li> </ul> </details> <br /> Updates `postcss` from 8.5.15 to 8.5.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p> <blockquote> <h2>8.5.16</h2> <ul> <li>Fixed <code>Input#origin()</code> position (by <a href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li> <li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> <li>Fixed putting parent-less node in <code>nodes</code> of new node (by <a href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li> <li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by <a href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li> <li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/postcss/postcss/commit/92ccc93ff15bd193491d67fad9763e62d489dfad"><code>92ccc93</code></a> Release 8.5.16 version</li> <li><a href="https://github.com/postcss/postcss/commit/818bdd6043359af773ccc3ca8663053d61a707c8"><code>818bdd6</code></a> Update formatting</li> <li><a href="https://github.com/postcss/postcss/commit/46e451068ee6160b837865b715cf6972f28fabd5"><code>46e4510</code></a> Fix <code>Input#origin()</code> returning incorrect position (<a href="https://redirect.github.com/postcss/postcss/issues/2036">#2036</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/34942ce76c0b0c9ee65b1421017ac71855e722c4"><code>34942ce</code></a> Fix tests</li> <li><a href="https://github.com/postcss/postcss/commit/d4feed645314ee421edf80ee9ebe453cc75c997f"><code>d4feed6</code></a> Don't clone root-less child nodes in container constructor (<a href="https://redirect.github.com/postcss/postcss/issues/2097">#2097</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/da323fc8d327a38199a21987dcbf7e27e3bc34f3"><code>da323fc</code></a> Revert version update to fix old Node.js on CI</li> <li><a href="https://github.com/postcss/postcss/commit/886336919497516df8f140d0fb327bd125e35053"><code>8863369</code></a> Update dependencies</li> <li><a href="https://github.com/postcss/postcss/commit/3828982213fec6bc13d0791b1adf40393be0935e"><code>3828982</code></a> Preserve node raws when rehydrating a JSON AST (<a href="https://redirect.github.com/postcss/postcss/issues/2100">#2100</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/d1e80b830386b08dcd5b962fd466d1c51f28e82d"><code>d1e80b8</code></a> Fix Node#rangeBy() ignoring index 0 (<a href="https://redirect.github.com/postcss/postcss/issues/2091">#2091</a>)</li> <li><a href="https://github.com/postcss/postcss/commit/b91e4a63907325d98b75d11fda546bdd91acc608"><code>b91e4a6</code></a> Fix Node.js 26 tests</li> <li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.5.15...8.5.16">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npm... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 09:38:37 -04:00
"@vitest/browser-playwright": "4.1.10",
"@vitest/browser-preview": "4.1.10",
"@vitest/browser-webdriverio": "4.1.10",
"@vitest/coverage-istanbul": "4.1.10",
"@vitest/coverage-v8": "4.1.10",
"@vitest/ui": "4.1.10",
fix(opencode): route native providers + load transport plugin, fix Serena context (#1573) ## Description `headroom wrap opencode` looked like it worked (proxy started, opencode launched) but **no inference reached the proxy**, so users saw zero savings (#1572). Root causes: 1. The injected synthetic `headroom` provider (`@ai-sdk/openai-compatible`) had **no `models` and no `apiKey`** → opencode raised `ProviderModelNotFoundError`, and it only ever targets OpenAI. 2. The wrap injected a reference to the **unpublished `headroom-opencode` npm plugin**, which opencode silently failed to resolve → the transparent transport never loaded. 3. Serena was launched with `--context opencode`, a context Serena does not ship → crash on launch (#1549). This PR makes `headroom wrap opencode` route opencode's traffic through the proxy with the user's **own API key** (no key written to disk), and gets the transparent transport plugin actually loading. Closes #1572 Closes #1549 ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) ## Changes Made - **`runtime.py`** — two complementary routing layers (both verified against opencode 1.17): 1. Override opencode's native `anthropic`/`openai` provider `baseURL` to the proxy. Reliable, credential-independent (covers API key **and** subscription), keeps native model metadata/limits, reuses the user's existing key. This is the always-on layer and the only one a pip-only install needs. 2. Load the transport plugin **by absolute path** when it has been built (`headroom_opencode_plugin_path()`), self-configured via `HEADROOM_PROXY_URL`. Covers providers we don't name (Gemini, Copilot, custom gateways) and providers added mid-session. Loopback URLs aren't double-routed, so the two layers coexist. - **`wrap.py`** — Serena context `opencode` → `agent` (valid context). - **`plugins/opencode/`** — new `src/entry.opencode.ts` loader entry that exports **only** the plugin function (opencode rejects a module with non-function exports: "Plugin export is not a function"); tsup builds it as a second entry. - **tests** — updated `test_providers_opencode_config.py` for path-based plugin injection + a skip-when-unbuilt case. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ python -m pytest tests/test_providers_opencode_config.py tests/test_cli/test_wrap_opencode.py -q 72 passed in 0.59s $ (cd plugins/opencode && npm test) Test Files 2 passed (2) Tests 9 passed (9) $ ruff check headroom/providers/opencode/runtime.py headroom/cli/wrap.py tests/test_providers_opencode_config.py ✓ Ruff: No issues found $ mypy headroom/providers/opencode/runtime.py Success: no issues found in 1 source file ``` ## Real Behavior Proof - **Environment:** macOS, opencode 1.17.11 (npm), headroom proxy 0.28.0 (local), Anthropic API key from `.env`. - **Exact command:** ``` headroom wrap opencode --no-serena --no-context-tool --no-proxy --port 8787 \ -- run -m anthropic/claude-haiku-4-5-20251001 "Reply with exactly: WRAPWORKS" ``` - **Observed result:** opencode printed `plugin=headroom-opencode` (loaded, no error) and returned `WRAPWORKS`. The proxy log shows the request routed through it: ``` event=outbound_request method=POST path=https://api.anthropic.com/v1/messages source=passthrough event=proxy_inbound_response path=/v1/messages status=200 PERF model=claude-haiku-4-5-20251001 cache_hit_pct=97 client=opencode ``` Compression verified on a large tool_result (`client=opencode`): ``` Pipeline complete: 170653 -> 77 tokens (saved 170576, 100.0% reduction) PERF tok_before=151309 tok_after=67 tok_saved=151242 transforms=router:tool_result:log client=opencode ``` - **Not tested:** custom OpenAI-compatible gateways (need the proxy to honor `x-headroom-base-url` in the dedicated OpenAI handler — open PR #1502); interactive TUI (verified the headless `opencode run` path). ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Additional Notes - **Plugin shipping:** the plugin loads by repo-relative path, which works for source/editable installs. `plugins/opencode/dist/` is gitignored, so the plugin must be built (`cd plugins/opencode && npm install && npm run build`) for layer 2 to activate; pip-only installs gracefully fall back to layer 1 (native baseURL override). Bundling `dist/` into the package or publishing `headroom-opencode` to npm is a follow-up for universal shipping. - **CHANGELOG:** N/A — handled by Release Please from the conventional commit. - Custom-gateway support depends on existing PR #1502 (honor `x-headroom-base-url` in the dedicated OpenAI handlers); not duplicated here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-29 15:04:56 -07:00
"happy-dom": "*",
"jsdom": "*",
"vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"@edge-runtime/vm": {
"optional": true
},
"@opentelemetry/api": {
"optional": true
},
"@types/node": {
"optional": true
},
"@vitest/browser-playwright": {
"optional": true
},
"@vitest/browser-preview": {
"optional": true
},
"@vitest/browser-webdriverio": {
"optional": true
},
"@vitest/coverage-istanbul": {
"optional": true
},
"@vitest/coverage-v8": {
"optional": true
},
"@vitest/ui": {
"optional": true
},
"happy-dom": {
"optional": true
},
"jsdom": {
"optional": true
},
"vite": {
"optional": false
}
}
},
"node_modules/vitest/node_modules/tinyexec": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz",
"integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/why-is-node-running": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
"integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
"dev": true,
"license": "MIT",
"dependencies": {
"siginfo": "^2.0.0",
"stackback": "0.0.2"
},
"bin": {
"why-is-node-running": "cli.js"
},
"engines": {
"node": ">=8"
}
},
"node_modules/yaml": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
"integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
"engines": {
"node": ">= 14.6"
},
"funding": {
"url": "https://github.com/sponsors/eemeli"
}
},
"node_modules/zod": {
"version": "4.1.8",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.1.8.tgz",
"integrity": "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}